拦截器入门(interceptor)
自定义拦截器的三个步骤:
1.自定义一个类实现Interceptor接口(或者继承AbstractInterceptor和它的子类)。
2.在struts2.xml中注册自定义的拦截器。
3.在需要使用的Action中引用上述定义的拦截器,一般为了简便也可将拦截器定义为默认的拦截器,这样在不加特殊声明的情况下所有的Action都被这个拦截器拦截。
当之定义拦截器的时候,默认的拦截器不会执行,需要将默认的拦截器打开。
自定义拦截器只能从登录页面进入系统。
Struts.xml:
<interceptors>
<!-- 注册自定义拦截器 -->
<interceptor name="bosLogin" class="cn.itcast.bos.web.interceptor.BOSLoginInterceptor">
<!-- 指定哪些方法不拦截 -->
<param name="excludeMethods">login</param>
</interceptor>
<!-- 自定义一个拦截器栈 -->
<interceptor-stack name="bos">
<interceptor-ref name="bosLogin"></interceptor-ref>
<interceptor-ref name="defaultStack"></interceptor-ref>
</interceptor-stack>
</interceptors>
<!-- 指定默认的拦截器 -->
<default-interceptor-ref name="bos"></default-interceptor-ref>
<!-- 配置全局结果 -->
<global-results>
<result name="login">/login.jsp</result>
</global-results>
<!-- 用户操作Action -->
<action name="userAction_*" class="userAction" method="{1}">
<result name="home">/WEB-INF/pages/common/index.jsp</result>
</action>
自定义的拦截器:
<!-- 用户操作Action -->
<action name="userAction_*" class="userAction" method="{1}">
<result name="home">/WEB-INF/pages/common/index.jsp</result>
</action>