RSS
热门关键字:  java  Ajax  JSP  JSF  Struts
当前位置 : 首页>Struts>列表

Starting Struts2-Core Components(3)

来源: 作者: 时间:2007-08-14 点击:

3    <interceptor-ref name="autowiring"/>
4</action>

 

使用这种配置,可以被应用到Action上的拦截器没有数量的限制.现在所需要的就是排列拦截器的顺序,它们都将被执行.

第二种方式是为当前的包分配默认的拦截器:

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


这个定义是直属<package ... />标签 的,并且只能有一个拦截器被定义成默认的.

现在已将拦截器配置到了Action映射上了,它将在每个映射的URL请求时被执行.但是这样有一些限制,更多的时候,我们需要将多个拦截器指派给一个Action.事实上,Struts2里基础的功能拦截器有很多,给每个Action指派7,8个拦截器也不是不可能的事.你可以假设一下,为每个Action配置各个拦截器,很快就会变得极难管理.因为这个原因,可使用拦截器栈来管理拦截器.这里有个例子,来自struts-default.xml文件:

 

1<interceptor-stack name="basicStack">
2    <interceptor-ref name="exception"/>
3    <interceptor-ref name="servlet-config"/>
4    <interceptor-ref name="prepare"/>
5    <interceptor-ref name="checkbox"/>
6    <interceptor-ref name="params"/>
7    <interceptor-ref name="conversionError"/>
8</interceptor-stack>

 

这个配置节点在<package ... />节点之下.每个<interceptor-ref … />标签引用一个拦截器或是一个在当前拦截器栈之前定义的拦截器栈.

我们已经看过如何将拦截器应用于Action之上,应用拦截器栈没有什么不同.事实上,我们正是使用相同的标签:

 

1<action name="my" class="com.fdar.infoq.MyAction" >
2    <result>view.jsp</result>
3    <interceptor-ref name="basicStack"/>
4</action>

 

这种做法对于默认的拦截器同样有效-简单的使用一个拦截器栈要优于使用单个的拦截器.

最新评论共有 0 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名: 密码:
匿名?
注册
Google Adsense
相关文章