<interceptors>
<interceptor name="login" class="com.yaxing.util.AuthorizationInterceptor"></interceptor>
<interceptor-stack name="myLogin">
<interceptor-ref name="login"></interceptor-ref>
<interceptor-ref name="defaultStack"></interceptor-ref>
</interceptor-stack>
</interceptors>
<default-interceptor-ref name="myLogin"></default-interceptor-ref> <global-results>
<result name="login" type="redirect">/index.jsp</result>
</global-results>
上面是我的拦截器,请问下,这个拦截器为什么只能放在一个package里面呢、我想我struts.xml里面所有的package都是用这个拦截器呢~其实这个拦截器就是拦截登陆的,没有登录就返回到登陆页面
以免用户自己输入action地址 直接访问。

解决方案 »

  1.   

    用package继承。
    如<package name="module1" extends="json-default,struts-default">
      

  2.   

    我把上面的拦截器放在一个package里面
    然后其他的所有的package都继承这个package 是这样嘛?
      

  3.   

    struts的dtd 文件 限制了拦截器只能放在package里面。
      

  4.   

    <package name="interceptorMy" namespace="/interceptorMy" extends="struts-default">
    <interceptors>
    <interceptor name="login" class="com.yaxing.util.AuthorizationInterceptor"></interceptor>
    <interceptor-stack name="myLogin">
    <interceptor-ref name="login"></interceptor-ref>
    <interceptor-ref name="defaultStack"></interceptor-ref>
    </interceptor-stack>
    </interceptors>
    <default-interceptor-ref name="myLogin"></default-interceptor-ref> <global-results>
    <result name="login" type="redirect">/index.jsp</result>
    </global-results>
    </package>我上面写了一个package
    我其他的package继承了这个package,
    但是还是不行,
    但是加了下面这局
    <default-interceptor-ref name="myLogin"></default-interceptor-ref>
    就可以使用了,请问为什么还需要加这句呢?不是集成了上面的package 就可以使用上面的package里面的默认的拦截器栈了嘛?
      

  5.   

    因为是默认拦截器,可以不用再为每个action配置