我有多个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>
支柱-user.xml
<struts>
<package name="user" extends="struts-default,baseInterceptors">
<action name="...">
...
</action >
...
</package>
</struts>
但baseInterceptors
中没有来自struts-user.xml
的拦截器。我该如何解决这个问题?
答案 0 :(得分:2)
按顺序处理配置文件:在处理<include>
和baseInterceptors
包之前处理default
(读取:已定义)。
换句话说,包含的文件取决于尚未定义的pacakges。
package configuration docs在靠近顶部的便条中解释了这一点,旁边有一个感叹号。
不相关,但您重复了一些配置,这会产生误导/无意识:baseInterceptors
已经扩展struts-default
,因此无需扩展两者。考虑创建像application-default
包这样的东西,这样显然应用程序中的所有东西都应该从它扩展。这消除了不必要的重复并传达了您的意图。