Struts2拦截器有关的元素

    在Struts2中,与拦截器有关的元素有这5个:intercetors,intercetor,intercetor-ref,intercetor-stack和default-intercetor-ref。
     我们在使用一个拦截器之前,必须先在<intercetors>的段落里用一个intercetor元素注册它。例如,我们在下面这个package里注册两个拦截器:
    
     <package name="myPackage" extends="struts-default"> 
         <intercetors>
                <intercetor name="validate" class="com..."/>
                <intercetor name="logger" class="com..."/>
         </intercetors>
     </package>
     

     如果想把某个拦截器添加给某个动作,就要在该动作的action元素下使用intercetor-ref元素,如下:
    
     <package name="myPackage" extends="struts-default"> 
         <intercetors>
                <intercetor name="validate" class="com..."/>
                <intercetor name="logger" class="com..."/>
         </intercetors>

	<action name="delete" class="com...">
		<intercetor-ref name="validate"/>
		<intercetor-ref name="logger"/>
		<result name="success">/jsp/success.jsp</result>
	</action
     </package>
     


     大部分struts应用程序都会有多个action元素,当我们反复地在action元素里列出一大堆拦截器清单时可能会非常麻烦,这时,就用到了拦截器盏元素(intercetor-stack):
          
     <package name="myPackage" extends="struts-default"> 
         <intercetor-stack name="myStack">
                <intercetor name="validate" class="com..."/>
                <intercetor name="logger" class="com..."/>
         </intercetor-stack>

	<action name="delete" class="com...">
		<intercetor-ref name="myStack"/>
		<result name="success">/jsp/success.jsp</result>
	</action>
     </package>
     


     struts-default包已经定义了几个拦截器栈和一个default-intercetor-ref元素,如果某个动作没有定义任何拦截器,就将使用这个元素定义的默认拦截器或者拦截器栈:
<default-intercetor-ref name="defaultStack" />


如果某个动作除了使用默认的拦截器外,还使用到其他的拦截器,则需要重新定义默认的拦截器,这是因为如果action元素里出现了intercetor元素,default-intercetor-ref元素将被忽略。

你可能感兴趣的:(jsp,xml,struts)