struts2 配置文件中自定义拦截器必须 defaultStack
我看一个系统的struts.xml文件中的拦截器配置是这么写的
- XML code
<package name="default" extends="struts-default"> <interceptors> <interceptor name="bean-scope" class="com.googlecode.scopeplugin.ScopeInterceptor"/> <interceptor-stack name="appdefault"> <interceptor-ref name="bean-scope"/> <!-- 定义拦截器栈包含default-stack拦截器栈 --> <interceptor-ref name="basicStack"/> <interceptor-ref name="encoding"/> <interceptor-ref name="opinion"/> </interceptor-stack> </interceptors> <!-- 定义struts2默认拦截器 --> <default-interceptor-ref name="appdefault"/></package>
这里面是没有引入defaultStack的,只引入了basicStack
但是我在网上看点说一般都要引入defaultStack 如:
- XML code
<package name="base" extends="struts-default"> <!--定义自己的拦截器 --> <interceptors> <interceptor name="authority" class="fi.authority.access.interceptor.AuthorityInterceptor"/> <!-- 定义默认拦截器 --> <interceptor-stack name="mydefault"> <interceptor-ref name="defaultStack" /> <interceptor-ref name="authority" /> </interceptor-stack> </interceptors> <!-- 使用默认拦截器 --> <default-interceptor-ref name="mydefault" /> <global-results> <result name="login">/login.jsp</result> <result name="noauthority">/noauthority.jsp</result> </global-results> </package>
那么是不是必须引入defaultStack呢?如果不是必须,为什么,麻烦解释详细一点,或者给个相关解释的链接也行
[解决办法]
defaultStack ,肯定是需要的,那个加载默认的配置,你现在只是定义了一个自己的,但是系统默认的你还没有加载进来。