Www.helper3.com
热门关键字: php net javascript java
Struts2基础 专题
专题目录
您的位置:java > Struts2基础专题 > Struts2拦截器栈的例子
Struts2拦截器栈的例子
作者:--    发布时间:2019-11-20 10:14:40
很多时候,相同的一组拦截器可以适用于不同的动作类,例如,
<package name="default" namespace="/" extends="struts-default">
	
    <action name="checkinaction" 
	class="com.h3.common.action.checkinaction" >
	<interceptor-ref name="timer"/>
        <interceptor-ref name="logger"/>
	<interceptor-ref name="defaultstack" />
	<result name="success">/pages/checkin.jsp</result>
    </action>
	
    <action name="checkoutaction" 
	class="com.h3.common.action.checkoutaction" >
	<interceptor-ref name="timer"/>
        <interceptor-ref name="logger"/>
	<interceptor-ref name="defaultstack" />
	<result name="success">/pages/checkout.jsp</result>
    </action>
		
</package>
在上述情况下,它有许多重复工作以及不能重复使用。

幸运的是,在struts 2自带的拦截器栈,使开发人员建立一组拦截到一个单元名为“栈名字”, 和可以通过“栈名字”引用操作它。

最佳做法
建议组合相同的一组拦截器到一个拦截器栈摆脱重复的工作,并增加了项目的可重用性。
<package name="default" namespace="/" extends="struts-default">
	
     <interceptors>
       	<interceptor-stack name="defaultstackwithlog">
             <interceptor-ref name="timer"/>
             <interceptor-ref name="logger"/>
	     <interceptor-ref name="defaultstack" />
        </interceptor-stack>
    </interceptors>
		
    <action name="checkinaction" 
	class="com.h3.common.action.checkinaction" >
	<interceptor-ref name="defaultstackwithlog"/>
	<result name="success">/pages/checkin.jsp</result>
    </action>
	
    <action name="checkoutaction" 
	class="com.h3.common.action.checkoutaction" >
	<interceptor-ref name="defaultstackwithlog"/>
	<result name="success">/pages/checkout.jsp</result>
    </action>
		
</package> 

在上面的例子更新,声明一个拦截器栈,命名为“defaultstackwithlog”其中包括“timer“, “logger” 和 “defaultstack” 拦截器,并且它通过“interceptor-ref”元素引用一个正常的拦截器。

参考

  1. struts2拦截器文档

滚动到顶部 滚动到底部
网站声明:
本站部分内容来自网络,如您发现本站内容
侵害到您的利益,请联系本站管理员处理。
联系站长
QQ群:570078429
网站备案号:
粤ICP备17073857号