【Struts2学习笔记】第五讲:Struts2的核心--interceptor

本文介绍了Struts2框架中的核心组件——拦截器(Interceptor)的实现方式与使用方法,包括自定义拦截器的步骤、如何在配置文件中注册及在Action中应用,同时还讨论了拦截器的执行顺序及如何正确配置以确保校验框架正常运作。

Ø  Interceptorstruts2的核心,struts2百分之七十的功能是由interceptor完成的,例如表单数据的收集、Action参数的赋值、校验的底层实现等等。

Ø  自定义interceptor的实现

1.         interceptor的实现类,需实现Interceptor接口或者继承AbstructInterceptor类,重写其intercepted方法,实现拦截

2.         struts.xml文件中为自定义interceptor进行注册,如下 

<interceptors>
<interceptor name=”interceptor_name”  class=”com.xx.InterceptorClass”>
    <param name=”paramName”>paramValue</param>
</interceptor>
</interceptor>

3.         在需要拦截的Action中添加interceptor注册,在Action添加如下代码:

<action name=”requestPath” class=”com.xx.ActionClass”>
<param name=”paramName”></param>
<result name=”resultname”>resulturl.jsp</result>
<interceptor-ref  name=” interceptor_name”> </interceptor-interceptor>
</action>

4.         当做完以上工作后我们发现之前我们已经配置好的校验框架已经不起作用了,这是因为,如果action中没有自定义的拦截器,struts2会为该action添加默认的拦截器,即defaultStack;如果action中用户自己添加了自定义拦截器,将覆盖掉系统的defaultStack,这时候需要我们显式调用该拦截器栈。如下:

<action name=”requestPath” class=”com.xx.ActionClass”>
<param name=”paramName”></param>
<result name=”resultname”>resulturl.jsp</result>
<interceptor-ref  name=” interceptor_name”> </interceptor-interceptor>
<interceptor-ref  name=”defaultStack”></interceptor>
</action>

Ø  如果在一个action中添加了多个拦截器,执行顺序是这样的:

interceptor1.init->interceptor2.init->interceptor2.intercepte->interceptor2.intercepte->interceptor2.destroy->interceptor1.destroy

Ø  也可以为一个package指定默认的interceptor 

<default-interceptor-ref  name=”interceptor_name”></default-interceptor-ref> 

                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值