Struts2拦截器有关的元素

本文介绍了Struts2中拦截器的基本配置方法,包括如何注册拦截器、在动作中使用拦截器以及创建拦截器栈来简化配置过程。此外,还讨论了如何设置默认拦截器。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在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元素将被忽略。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值