拦截器的invocation.invoke()之后没有填充Struts 2动作变量

我的问题是,在使用invocation.invoke从拦截器触发动作的变量后,它们不会被填充。 我所知道的是,在使用拦截器之前,它工作正常(从.jsp我提交了一个表单并调用了一个动作,并填充了每个变量)

拦截器类:

public String intercept(ActionInvocation invocation) throws Exception { final ActionContext context = invocation.getInvocationContext(); HttpServletRequest request = (HttpServletRequest) context.get(HTTP_REQUEST); HttpSession session = request.getSession(true); Object user = session.getAttribute(Constants.USER_HANDLE); if (user == null) { String signUp = request.getParameter(Constants.SIGN_UP); if (!StringUtils.isBlank(loginAttempt)) { if (processLoginAttempt(request, session)) { return "login-success"; } } else if (!StringUtils.isBlank(signUp)) { return invocation.invoke(); } return "login"; } else { return invocation.invoke(); } } 

Struts XML文件:

           /logIn.jsp index   /logIn.jsp /index.jsp /error.jsp  

动作类:

 public class UserAction extends ActionSupport implements ModelDriven { private User user; private int tempGender; private String confirmPassword; private UserDAO userDAO; private PasswordEncrypter passwordEncrypter; public Object getModel() { return getUser(); } public String addUser() throws Exception { } //Getter and setters ect 

谢谢你的时间 !

您在代码中仅指定了自定义拦截器,并排除了所有其他Struts2默认拦截器。 试试这个: