"细说常量定义-struts2.0教学ppt"
本文主要介绍的是Struts2框架中的常量定义及其配置方法。Struts2是一个流行的企业级Java Web应用框架,它在Struts1的基础上进行了许多改进,提供了一种更灵活、更强大的MVC架构。在Struts2中,常量可以用来配置框架的行为,例如指定Action的扩展名。
常量定义在Struts2中可以通过两种方式进行:在`struts.xml`配置文件或者`struts.properties`属性文件中进行。推荐在`struts.xml`中配置常量,因为这样更便于管理和维护。例如,我们可以通过以下代码设置Action的默认扩展名为`.do`:
```xml
<struts>
<constant name="struts.action.extension" value="do"/>
</struts>
```
而在`struts.properties`中,配置方式则更为简洁:
```properties
struts.action.extension=do
```
Struts2加载常量时遵循一定的搜索顺序,依次是:
1. `struts-default.xml`
2. `struts-plugin.xml`
3. `struts.xml`
4. `struts.properties`
5. `web.xml`
如果同一个常量在多个文件中被定义,那么后面的文件中的配置会覆盖前面文件中的配置,这是Struts2处理常量冲突的机制。
Struts2框架相对于其前身Struts1,有许多改进之处。在Struts1中,开发人员需要关注`ActionForm`和`Action`这两个核心组件以及一个配置文件`struts-config.xml`。用户表单数据会被封装到`ActionForm`对象中,然后根据请求路径在`struts-config.xml`中找到对应的`Action`配置,调用相应的业务逻辑方法。`Action`执行完毕后,通过`ActionMapping`找到对应的JSP页面进行转发。
然而,Struts1存在一些缺点,比如它仅支持JSP作为表现层技术,不兼容FreeMarker或Velocity等更现代的模板引擎;此外,Struts1与Servlet API耦合度高,这使得单元测试变得困难,因为业务逻辑控制器内部充斥着Servlet API,依赖于特定的Web服务器环境。
相比之下,Struts2提供了更灵活的配置和扩展能力,支持多种模板技术,降低了与Servlet API的耦合,使得测试和维护变得更加便捷。例如,Struts2引入了拦截器(Interceptor)的概念,允许开发者在Action执行前后插入自定义逻辑,增强了业务处理的灵活性。
总结来说,Struts2中的常量定义是框架配置的重要部分,它允许开发者定制框架的行为以适应不同的项目需求。通过合理地配置常量,可以优化应用性能,提高开发效率。同时,理解Struts2相对于Struts1的改进和优缺点,有助于更好地利用这个框架进行企业级Web应用的开发。