奇怪的struts2 拦截器问题,尝试非法访问,却找不到input页面 并且重复拦截了11次。

问题描述:

以下是我的例子

这是STRUTS的XML loginInterceptor是我自定义的拦截器










<!-- 定义在该ACTION包下默认要使用的拦截器栈 -->

<!-- 定义全局转向 -->

/error.jsp

<!-- crud add operation -->


/index.jsp


我在登陆页面已经把登陆的用户ID放到session里面了

接下来是我的loginInterceptor 拦截器
@Override
public String intercept(ActionInvocation invocation) throws Exception {

System.out.println("----------------------进入监听");
ActionContext ctx = invocation.getInvocationContext();
session = ctx.getSession();
userId=(String) session.get("userId");

if(userId!=null&&!userId.equals("")){
System.out.println("----------------------用户:"+userId+" 进入系统");
return invocation.invoke();
}
System.out.println("----------------------非法用户访问!");
return Action.INPUT;
}

现在一切都正常,可是当我在页面中直接输入addCrudTest.action的时候 居然总说找不到要转向的页面?而且拦截器里面的输出语句 重复输出了11遍?我另外一个项目就是这样配的 完全正常 所以万般无奈只能请大家解答了。。。

是不是其他的interceptor对这个的影响,建议都去掉,一个个的来试,还有可能有顺序问题

我建议用filter吧,这个比interceptor更直接些