STRUTS系列之 拦截器配置
2017-04-17 16:53
363 查看
Struts 为Action配置拦截器有四种方法:
注:该方法适用于action需要拦截器不多或与其他action拦截器不通用的情况下。
注:该方法适用于action使用的拦截器较多的情况下,并且拦截器栈也能被其他action引用。
注:如果在action里配置了其他拦截器或拦截器栈,那么action将不会引用默认的拦截器栈,需要显式的配置
如:
注:拦截器都是在包中定义,所以不同包的拦截器不能相互引用,除非两个包之间是继承关系。
为单个Action指定拦截器
<package name="default" extends="struts-default"> <interceptors> <!-- 定义名为logger的拦截器 --> <interceptor name="logger" class="org.sunxin.interceptor.LogInterceptor" /> <!-- 定义名为security的拦截器 --> <interceptor name="security" class="org.sunxin.interceptor.ValidationInterceptor" /> </interceptors> <action name="register" class="....."> <result name="input">register.jsp</result> <result>login.jsp</result> <!-- 为register action指定拦截器 --> <interceptor-ref name="logger" /> <interceptor-ref name="security" /> </action> </package>
注:该方法适用于action需要拦截器不多或与其他action拦截器不通用的情况下。
为action引用拦截器栈
<package name="default" extends="struts-default"> <interceptors> <!-- 定义名为logger的拦截器 --> <interceptor name="logger" class="org.sunxin.interceptor.LogInterceptor" /> <!-- 定义名为security的拦截器 --> <interceptor name="security" class="org.sunxin.interceptor.ValidationInterceptor" /> <!-- 为上述拦截器设定拦截器栈 --> <interceptor-stack name="defaultStack" > <interceptor-ref name="logger" /> <interceptor-ref name="security" /> </interceptor-stack> </interceptors> <action name="register" class="....."> <result name="input">register.jsp</result> <result>login.jsp</result> <!-- 为register action指定拦截器栈 --> <interceptor-ref name="defaultStack" /> </action> </package>
注:该方法适用于action使用的拦截器较多的情况下,并且拦截器栈也能被其他action引用。
定义默认的拦截器栈
如果多个action都需要相同的拦截器,可以指定默认的拦截器或拦截器栈<package name="default" extends="struts-default"> <interceptors> <!-- 定义名为logger的拦截器 --> <interceptor name="logger" class="org.sunxin.interceptor.LogInterceptor" /> <!-- 定义名为security的拦截器 --> <interceptor name="security" class="org.sunxin.interceptor.ValidationInterceptor" /> <!-- 为上述拦截器设定拦截器栈 --> <interceptor-stack name="defaultStack" > <interceptor-ref name="logger" /> <interceptor-ref name="security" /> </interceptor-stack> </interceptors> <default-interceptor-ref name="defaultStack"> <!--register action不需要配置拦截器或拦截器栈,自动使用配置的默认拦截器栈 --> <action name="register" class="....."> <result name="input">register.jsp</result> <result>login.jsp</result> </action> </package>
注:如果在action里配置了其他拦截器或拦截器栈,那么action将不会引用默认的拦截器栈,需要显式的配置
如:
<package name="default" extends="struts-default"> <interceptors> <!-- 定义名为logger的拦截器 --> <interceptor name="logger" class="org.sunxin.interceptor.LogInterceptor" /> <!-- 定义名为security的拦截器 --> <interceptor name="security" class="org.sunxin.interceptor.ValidationInterceptor" /> <interceptor name="timer" class="org.sunxin.interceptor.TimernInterceptor" /> <!-- 为上述拦截器设定拦截器栈 --> <interceptor-stack name="defaultStack" > <interceptor-ref name="logger" /> <interceptor-ref name="security" /> </interceptor-stack> </interceptors> <default-interceptor-ref name="defaultStack"> <!--register action不需要配置拦截器或拦截器栈,自动使用配置的默认拦截器栈 --> <action name="register" class="....."> <result name="input">register.jsp</result> <result>login.jsp</result> <interceptor-ref name="timer" /> <interceptor-ref name="defaultStack" /> </action> </package>
注:拦截器都是在包中定义,所以不同包的拦截器不能相互引用,除非两个包之间是继承关系。
相关文章推荐
- 【Struts1.2总结系列】validation.xml验证文件的配置
- 【Struts1.2总结系列】struts-config.xml配置
- javaweb国际化,用struts标签解决,注意每个页面都是action跳jsp,并且拦截器的配置使得每次将国际化配置保存在session
- struts文件上传拦截器中参数的配置(maximumSize,allowedTypes ,allowedExtensions)问题
- Struts 通过拦截器实现登录后跳转到登录前页面 处理普通Http请求和Ajax请求时拦截配置
- MyEclipse应用程序开发系列之三:MyEclipse+struts+Hibernate配置开发
- Struts2系列:(9)Struts的配置文件
- struts.xml 配置详解之三 拦截器配置
- struts里关于拦截器的一些基本配置
- Struts为所有包配置拦截器
- Struts拦截器代码配置
- Struts 2读书笔记-----拦截器之拦截器的配置
- Struts 2读书笔记-----拦截器之拦截器的配置
- struts拦截器配置问题Unable to find interceptor class referenced by ref-name defaultStack
- Struts2之我见系列总结----struts.xml骨架配置(2012.12.03)
- Struts 2的基石——拦截器(Interceptor)(Struts 2.0系列之七)
- Struts 配置拦截器导致 验证的某某Action-vationdation.xml文件不好使的问题
- Struts 2读书笔记-----拦截器之拦截器的配置
- 【开发过程问题汇总系列】【B/S struts2】加好jar包且配置好struts.xml后action还是无法请求的问题
- Struts2系列:(4)使用多个struts配置文件