如何使用预定义的拦截器(struts2)

来源:互联网 发布:苹果免费看书的软件 编辑:程序博客网 时间:2024/05/22 00:26

有两种方式:
1:在struts.xml的Action配置里面,引用需要使用的拦截器。
其实很简单,只需要在< action>元素中,配置需要的< interceptor-ref>子元素就可以了,< interceptor-ref>子元素里面配置需要使用的拦截器的名称,比如:

<action name="helloworldAction" class="cn.javass.action.action.HelloWorldAction">            <param name="account">test</param>         <result>/s2impl/welcome.jsp</result>         <interceptor-ref name="staticParams"/>         <interceptor-ref name="basicStack"/></action>

< interceptor-ref>子元素中的name,不仅仅可以是一个已经定义好的拦截器的名称,还可以是一个已经定义好的拦截器栈的名称。上面的示例,就引用了一个拦截器和一个拦截器栈。
2:在包上声明包内所有的Action都使用的拦截器。
在配置自己的package的时候所扩展的struts-default包里面,就已经定义了一个< default-interceptor-ref>,在Struts-default.xml中定义的struts-default包内,有如下定义:

<default-interceptor-ref name="defaultStack"/>

正是因为有这个定义,前面的示例中,我们都没有主动去配置拦截器,但实际上,是有拦截器在运行并执行很重要的工作,只不过是使用的默认的拦截器,我们不知道罢了。
当然现在就知道了,如果我们没有去配置拦截器,默认就会运行名称为“defaultStack”的拦截器栈里面定义的那些拦截器。可能有朋友会问,到底有哪些拦截器,看看上面的预定义拦截器,或者到Struts-default.xml中定义的struts-default包内去查看,里面都有。

0 0
原创粉丝点击