Struts2配置常量详解与最佳实践
需积分: 1 65 浏览量
更新于2024-09-15
收藏 90KB DOC 举报
ons"value="action,do,ctl"/></struts>
"Struts2框架中的常量配置方法和详解"
在Struts2框架中,常量的配置是系统运行时的重要组成部分,它定义了框架的行为和配置参数。本资源主要介绍了三种配置常量的方式:通过`struts.xml`、`web.xml`以及`struts.properties`文件。每种方式都有其特定的应用场景和优缺点。
1. 在`struts.xml`文件中配置常量是最常见的方式,这种方式便于集中管理Struts2的配置,提高了代码的可读性和维护性。当多个配置文件中存在相同常量时,按照加载顺序,后面的配置会覆盖前面的。
2. `struts.properties`文件的使用是为了保持与WebWork框架的兼容性,这是一个传统的配置方式,可以设置一些框架的基础属性。
3. 在`web.xml`中配置常量虽然提供了更全局的设置,但可能导致配置文件过于庞大,影响可读性,因此一般不推荐作为首选。
Struts2加载常量的顺序遵循以下规则:
1. `struts-default.xml` - 存在于`struts2-core-2.0.6.jar`文件中,包含默认的框架设置。
2. `struts-plugin.xml` - 存在于各个Struts2插件的JAR文件中,用于插件的配置。
3. `struts.xml` - Web应用中的默认Struts2配置文件,通常用于自定义应用特定的配置。
4. `struts.properties` - Web应用的默认Struts2配置文件,用于设置框架属性。
5. `web.xml` - Web应用的部署描述符,可配置一些特定的Struts2常量。
接下来,我们深入讲解一些重要的常量配置:
- `struts.i18n.encoding`: 这个常量用于设置Web应用的默认编码集,例如设置为`UTF-8`,确保请求和响应的字符编码正确,防止乱码问题。
- `struts.action.extension`: 该常量定义了Struts2框架将处理哪些请求后缀,如`action`、`do`或`ctl`。默认情况下,Struts2会处理以`.action`结尾的请求,但可以通过这个常量扩展到其他后缀。
- `struts.objectFactory`: 指定对象工厂,用于创建Action和其他依赖对象。默认使用SpringObjectFactory,但可以替换为其他实现,如Pico或Guice。
- `struts.devMode`: 开发模式开关,设为`true`开启,可以提供错误信息、堆栈跟踪等,方便调试;设为`false`则关闭,提高生产环境性能。
- `struts.multipart.maxSize`: 设置上传文件的最大大小,超过这个限制,Struts2将抛出异常。
这只是Struts2常量配置的一小部分,还有很多其他的常量,如`struts.enable.DynamicMethodInvocation`(动态方法调用开关)、`struts.action.excludePattern`(排除不被Struts2处理的URL模式)等,它们共同构成了Struts2的强大配置体系,可以根据实际需求灵活调整,以优化框架行为和提高应用性能。在实际项目开发中,理解并熟练掌握这些常量的含义和用法,对于优化Struts2应用至关重要。
2013-10-04 上传
2011-07-11 上传
2011-12-20 上传
2013-02-15 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
heguanhibernate
- 粉丝: 0
- 资源: 5
最新资源
- Android圆角进度条控件的设计与应用
- mui框架实现带侧边栏的响应式布局
- Android仿知乎横线直线进度条实现教程
- SSM选课系统实现:Spring+SpringMVC+MyBatis源码剖析
- 使用JavaScript开发的流星待办事项应用
- Google Code Jam 2015竞赛回顾与Java编程实践
- Angular 2与NW.js集成:通过Webpack和Gulp构建环境详解
- OneDayTripPlanner:数字化城市旅游活动规划助手
- TinySTM 轻量级原子操作库的详细介绍与安装指南
- 模拟PHP序列化:JavaScript实现序列化与反序列化技术
- ***进销存系统全面功能介绍与开发指南
- 掌握Clojure命名空间的正确重新加载技巧
- 免费获取VMD模态分解Matlab源代码与案例数据
- BuglyEasyToUnity最新更新优化:简化Unity开发者接入流程
- Android学生俱乐部项目任务2解析与实践
- 掌握Elixir语言构建高效分布式网络爬虫