现在的位置: 首页 > 综合 > 正文

Struts2拦截器必需注意的一个小细节

2018年02月01日 ⁄ 综合 ⁄ 共 959字 ⁄ 字号 评论关闭
虽然struts2发布没多久,网上关于相关的资料已经非常多了,给大家推荐一个网友的blog,http://www.blogjava.net/max/ 有兴趣的朋友可以去看看,上面对struts2的讲解基本上比较详细了。在这里提醒各位一个小细节,在开发过程中,我们可能会自定义拦截器(interceptor),用来帮助我们完成相应的功能。其实struts2自身也提供了一些拦截器,例如我们常用的效验(validation)功能就是例用拦截器完成的。但是,当我们自定义拦截器后,发现,struts2自身的拦截器却不起作用了。这里因为我们的拦截器覆盖了struts2自身的拦截器的原因造成的。解决方法是,配置一个拦截器栈,将struts2自身的拦截器配置进去即可。如下:

  <interceptors>
      <!-- 自定义拦截器 -->
      <interceptor name="noLogin" 
               class="com.mxjava.tycho.servlet.interceptor.NoLoginInterceptor"/>
      <!-- 拦截器栈 -->
      <interceptor-stack name="appStack">
               <interceptor-ref name="noLogin"/>
               <!-- struts2自身拦截器 -->
               <interceptor-ref name="defaultStack"/>
      </interceptor-stack>
   </interceptors>

  <action name="login" class="LoginAction">
          <!-- 配置拦截器栈 -->
           <interceptor-ref name="appStack"/>
           <result type="velocity">/vms/user/login.vm</result>
           <result name="login" type="redirect-action">index.htm</result>
   </action>

 

抱歉!评论已关闭.