读书人

Struts2拦截器的施用详解

发布时间: 2013-07-01 12:33:04 作者: rapoo

Struts2拦截器的使用详解
如何使用struts2拦截器,或者自定义拦截器。特别注意,在使用拦截器的时候,在Action里面必须最后一定要引用struts2自带的拦截器缺省堆栈defaultStack,如下(这里我是引用了struts2自带的checkbox拦截器):
<interceptor-ref name="checkbox">
<param name="uncheckedValue">0</param>
</interceptor-ref>
<interceptor-ref name="defaultStack"/>(必须加,否则出错)


也可以改为对全局Action设置自己需要的拦截器,如下:

在struts.xml里面定义全局的配置设置
<package name="struts-shop" extends="struts-default">
<interceptors>
<interceptor-stack name="myStack">
<interceptor-ref name="checkbox">
<param name="uncheckedValue">0</param>
</interceptor-ref>
<interceptor-ref name="defaultStack"/>
</interceptor-stack>
</interceptors>
<default-interceptor-ref name="myStack"/>(这句是设置所有Action自动调用的拦截器堆栈)
</package>

struts-action.xml里面配置Action如下:
<package name="LogonAdmin" extends="struts-shop">(这里扩展struts.xml里面定义的配置就可以了)
<action name="logon"

extends="struts-default">

<interceptors>

<interceptor name="timer" extends="struts-default">

<interceptors>

<interceptor name="timer" class="tutorial.Login">

<result name="input">login.jsp</result>

<result type="redirect-action">/secure/home</result>

</action>



3 如何访问HttpServletRequest,HttpServletResponse或者HttpSession

有两种方法可以达到效果,使用ActionContext:

Map attibutes = ActionContext.getContext().getSession();

或者实现相应的接口:

HttpSession SessionAware

HttpServletRequest ServletRequestAware

HttpServletResponse ServletResponseAware


读书人网 >软件开发

热点推荐