您的位置:首页 > 编程语言 > Java开发

struts2 拦截器实现实例

2010-02-27 20:40 337 查看
struts 拦截器的应用技巧。

当你的一个action中 有很多不同的方法,有的要权限验证,有的不要。那你就可以通过下面的方法配置你的Action

如下:

<action name="AJAXDo*" class="ajaxUserAction" method="{1}"/>

<action name="AJAXValidateDo*" class="ajaxUserAction" method="{1}">
<interceptor-ref name="defaultStack"/>
<interceptor-ref name="authority"/>
</action>


如上配了两个action 一个要通过拦截的,而一个不要。同时使用了action动态方法

主题说的是拦截器的定义,下面来看一下它的定义:

首先你要定义一个类,并且实现拦截器的接口一盘都实现com.opensymphony.xwork2.interceptor.AbstractInterceptor;

的接口

写好这个类之后,接下来就要进行配置文 件的配置了。如下

<!-- interceptors -->
<interceptors>
<interceptor name="authority" class="com.comm.interceptors.Authority"></interceptor>
</interceptors>


上面的xml配置是申明一个拦截器

然后我们就把它用到action中。如下:

<action name="AJAXValidateDo*" class="ajaxUserAction" method="{1}">
<STRONG><SPAN style="COLOR: #ff0000" mce_style="COLOR: #ff0000"><interceptor-ref name="defaultStack"/></SPAN></STRONG>
<interceptor-ref name="authority"/>
</action>


在这里还要必须申明一下,当你使用自己的拦截器时,struts的默认的拦截器就会失效。上面红色字体就是加入struts的默认的拦截器。

如果你有很多的自定义拦截器时,为了不麻烦,你可以用以下的方法。把所有的拦截器定义到一个自定义的拦截器栈中

<!-- interceptors -->
<interceptors>
<interceptor name="authority" class="com.comm.interceptors.Authority"></interceptor>
<interceptor-stack name="mydefaultStack">
<interceptor-ref name="defaultStack"/>
<interceptor-ref name="authority"/>
</interceptor-stack>
</interceptors>


<default-interceptor-ref name="mydefaultStack"/>
</package>


如果按照如上的定义,那么在该包下的所有action执行时都会被拦截器拦截。

不用通过拦截器的action就要写到别的Action去
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: