Struts2预定义拦截器的使用

使用struts2拦截器、或者自定义拦截器是要特别注意:在Action里面必须最后一定要引用struts2自带的拦截器缺省堆栈defaultStack,如下(使用struts2自带的timer拦截器): 

<action name="loginAction" class="cn.wjq.study.login.action.LoginAction" method="login">
        <result name="toWelcome">/login/welcome.jsp</result>		            
        <interceptor-ref name="timer"></interceptor-ref>
        <!--必须引用 -->      
         <interceptor-ref name="defaultStack"></interceptor-ref>
 </action>

也可以改为对全局Action设置自己需要的拦截器,如下:
在struts.xml里面定义全局的配置设置

<!-- 定义了一个新的拦截器栈,在这个拦截器栈中,先引用timer拦截器,再引用defaultStack拦截器栈 -->
        <interceptors>
    		<interceptor-stack name="pubStack">
        		<!--timer拦截器  用来记录action的运行时间(在控制台上会打印出)-->
    			<interceptor-ref name="timer"/>
    			<!-- struts2默认栈(在引用其他栈或拦截器时必须引用defaultStack栈) -->
    			<interceptor-ref name="defaultStack"/>
    		</interceptor-stack>
    	</interceptors>
		<!-- 定义默认的拦截器引用为这个新定义的拦截器栈 pubStack-->
    	<default-interceptor-ref name="pubStack"/>

猜你喜欢

转载自mr-wangjq.iteye.com/blog/1782775