Struts2 配置文件详解
Struts2 的配置体系主要可以分为两大部分:Web 容器层面的配置(web.xml)和框架内部的配置。框架内部又细分为执行环境的全局配置以及具体组件的配置。
1. Web.xml 配置
在 Struts2 中,核心控制器是一个过滤器。早期版本(2.0.x)使用的是 FilterDispatcher,但从 2.1 开始统一为 org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter。这是整个 Web 应用的基础入口,必须在 web.xml 中注册。
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
对于基础应用,上述配置已足够。剩下的工作就是配置全局环境和组件细节,比如 Action 映射、拦截器等。
2. struts.properties 文件
这个文件用于覆盖框架的默认行为。虽然默认情况下不需要修改,但了解它的机制很有必要。
Struts2 启动时会先加载 jar 包内的 default.properties,然后查找项目中的 struts.properties。如果存在后者,则优先使用其中的配置覆盖前者。如果没有自定义文件,则完全采用默认值。
例如,default.properties 中定义了默认的请求后缀和编码:
# 默认请求后缀
struts.action.extension=action,,
# 默认编码
struts.i18n.encoding=UTF-8
我们可以在项目的 src 根目录下新建 struts.properties 来覆盖这些设置:
## 激活重新载入国际化文件的功能
struts.i18n.reload=true
## 修改请求后缀为 action 或者 do
struts.action.extension=action,do
## 打开开发者模式,修改配置后无需重启服务器
struts.devMode=true
注意:该文件编译后会位于 /WEB-INF/classes 下。
3. 核心 XML 配置文件
除了属性文件,Struts2 还依赖几个关键的 XML 文件:
- :存放在 包内,系统启动时自动加载。它定义了类型转换、拦截器、结果类型等核心组件。我们的业务配置通常继承自这里定义的 包。

