struts2拦截器不执行

来源:百度知道 编辑:UC知道 时间:2024/05/25 11:54:51
TestEncode.jsp

<body>
<form action="TestEncode.action" method="POST">
Name: <input type="text" name="username" />
<input type="submit" value="submit" />
</form>
</body>

TestEncodeAction

public String execute() throws Exception {
HttpServletRequest request = ServletActionContext.getRequest();
HttpSession session = request.getSession();
session.setAttribute("NO", no);
System.out.println("登录TestEncodeAction");
return "success";
}

LoginInterceptor.java

public class LoginInterceptor extends AbstractInterceptor {

private static final long serialVersionUID = -2796326480994355318L;
HttpServletRequest request = ServletActionContext.getRequest();
HttpSession session = request.get

<interceptor-stack name="loginStack">
<interceptor-ref name="loginInterceptor" />
<interceptor-ref name="defaultStack" />
</interceptor-stack>

这里增加一个默认拦截器
加一个拦截器栈是不够的

<interceptor-ref name="loginInterceptor">
<param name="includeMethods">execute</param>
</interceptor-ref>

把action 节点下的配置 改成这个样子看。。。

这个可能是栈的顺序的问题.
因为default栈里面有很多一开始必须用到的拦截器.比如说设置参数等.但是拦截器的执行顺序是按其配置的顺序来的.可能就是这个顺序影响了.
试试把
<interceptor-stack name="loginStack">
<interceptor-ref name="loginInterceptor" />
<interceptor-ref name="defaultStack" />
</interceptor-stack>
中间引用的两个栈调一下顺序看看.

web.xml 里面配了没