struts.xml 是 Struts2 的核心配置文件,位于类路径根目录,以 为根节点,通过 分组、 映射请求与处理类、 定义视图跳转,并支持常量配置、配置拆分及拦截器定义。
Struts2 的 struts.xml 是框架的核心配置文件,用于定义 Action 映射、拦截器、结果类型、包结构等关键行为。它不是必须手写全部内容(可被注解或 Java 配置替代),但在多数传统项目中仍是主流配置方式。
struts.xml 必须放在类路径根目录(如 src/main/resources 或 WEB-INF/classes),且以 为根节点。最简合法结构如下:
:顶层容器,可包含多个
:逻辑分组单位,必须继承 struts-default(提供默认拦截器、结果类型等):定义请求路径与 Action 类的映射/success.jsp :指定返回逻辑视图名对应的实际资源路径Action 是处理请求的核心类,默认调用 execute() 方法,返回字符串决定跳转结果。配置时注意:
login 对应 /login.action 或 /login,取决于后缀配置)ActionSupport
向 Action 注入属性值(要求 Action 有对应 setter)name="user_*" + class="com.example.User{1}Action",访问 /user_save.action 自动调用 UserSaveAction
package 不是 Java 包,而是 Struts2 的配置命名空间,用于模块化管
理:
user、admin)struts-default 是所有自定义包的基础 和 ,作用于该包下所有 Action除 Action 外,struts.xml 还常配置以下内容:
:开启开发模式,热加载配置、详细错误页:拆分配置,便于团队协作维护 块内可定义自定义拦截器或拦截器栈,供 action 引用:当请求路径无匹配 action 时,转发到指定 action基本上就这些。写 struts.xml 的关键是理解 package 的继承与作用域、Action 名称与 URL 的映射规则、以及结果视图的解析逻辑。不复杂但容易忽略继承链和路径后缀设置,建议搭配 struts.devMode=true 实时验证效果。