struts2自定义拦截器和默认拦截器栈的顺序问题。

我自定义了一个拦截器。myinterceptor,里面就输出一句话“myinterceptor”。在xml的action下面设置拦截器的时候,出现了一点疑问。当我如下设置... 我自定义了一个拦截器。myinterceptor,里面就输出一句话“my interceptor”。在xml的action下面设置拦截器的时候,出现了一点疑问。
当我如下设置时:
<interceptor-ref name="myInterceptor"></interceptor-ref>
<interceptor-ref name="defaultStack"></interceptor-ref>
控制台输出my interceptor。
但是当我如下设置时:
<interceptor-ref name="defaultStack"></interceptor-ref>
<interceptor-ref name="myInterceptor3"></interceptor-ref>
控制台没有任何输出。
我猜测可能是默认的拦截器栈或是其中的某个拦截器造成的。有没有人遇到过这问题?是哪里出问题了呢?
有个地方写错了,上面那个myInterceptor3就是myInterceptor

我想问的是为什么默认拦截器栈写在前面,会屏蔽掉后面的拦截器。
还有一个问题,如果我把默认拦截器栈写在前面,那么会先进入action中的validate方法,为什么呢?不是在所有拦截器都过一遍时才会进入action吗?
展开
 我来答
haioceanyang
推荐于2018-04-14 · 超过29用户采纳过TA的回答
知道答主
回答量:54
采纳率:0%
帮助的人:57万
展开全部
自定义拦截器和默认拦截器是有先后顺序的,如我的代码
public String intercept(ActionInvocation invocation) throws Exception {

//这里的代码先执行,然后在执行你的action
String result = invocation.invoke();
//这里的代码是在执行完action以后执行
return result;
suiyj1158
2010-11-26 · 超过62用户采纳过TA的回答
知道小有建树答主
回答量:307
采纳率:0%
帮助的人:205万
展开全部
<interceptor-ref name="myInterceptor"></interceptor-ref>
<interceptor-ref name="defaultStack"></interceptor-ref>

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

myInterceptor3 这个 3 是怎么回事啊。写错了吧。
默认拦截器跟自定义拦截器顺序反正没关系,一般写发都是自定义在前,默认在后。我一般都这么写
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2010-12-07
展开全部
不是吧,一般在引用拦截器或拦截器栈时,第一个会起作用,后面的会被屏蔽掉(也就是不起作用,引用跟没引用一样),一般要把默认拦截器写在自己定义的拦截器里面,再引用自己的拦截器。你可以看看孙鑫的struts书,写的不错
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友f93c1ef41
2010-11-26
知道答主
回答量:5
采纳率:0%
帮助的人:3.7万
展开全部
在struts.xml里面加一个default-interceptor-ref,把myInterceptor3和defaultStack放进去,myInterceptor3在defaultStack前面,用的时候用default-interceptor-ref就行了,省得麻烦
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式