java - 多个 Struts 2 配置文件

标签 java struts2

我有多个 XML 配置。

struts.xml

<struts>
  <include file="struts-user.xml" />

  <package name="baseInterceptors" extends="struts-default">
    <interceptor name="...">
       ...
    </interceptor>
       ...
  </package>

  <package name="default" extends="struts-default,baseInterceptors">
    <action name="...">
       ...
    </action >
       ...
  </package>
</struts>

struts-user.xml

<struts>
  <package name="user" extends="struts-default,baseInterceptors">
    <action name="...">
       ...
    </action >
    ...
  </package>
</struts>

但是来自 baseInterceptors 的拦截器在 struts-user.xml 中不可用。我该如何解决这个问题?

最佳答案

配置文件按顺序处理:<include>baseInterceptors 之前处理和default包被处理(读:定义)。

换句话说,包含的文件依赖于尚未定义的包。

package configuration docs在顶部附近的注释中解释这一点,旁边有一个感叹号。


不相关,但您重复了一些配置,这是误导性的/无法沟通的:baseInterceptors已经延长struts-default ,因此无需扩展两者。考虑创建类似 application-default 的内容包,因此很明显应用程序中的所有内容都应该从中扩展。这可以消除不必要的重复并传达您的意图。

关于java - 多个 Struts 2 配置文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9948858/

相关文章:

java - jquery 中 .post 的多次使用

java - 让 sitemesh 与 struts2 一起工作

java - struts2 和 freemarker 模板

java - 使用 nextFloat() 时线程 "main"java.util.InputMismatchException 中出现异常

java - 在 Swing 中加载多个文件

java - 如何从eclipse中的资源文件夹中读取文件

java - Ant build.xml 导致 java.io.IOException : System cannot find the specified file

java - 我们网站的欺诈检测和机器人拦截器

java - struts2:在主/调用jsp中显示结果jsp

html - Struts 2如何正确显示数据库记录的HTML标记内容到浏览器?