拦截器在Struts 2.0中登录时使用

我正在设计一个基本应用程序,其中User提供了他的用户ID和密码,如果登录成功,他将被重定向到主页。 现在进行validation,如果用户标识和密码不为空,我想使用拦截器。 但我无法找到如何在拦截器中访问请求参数的值。 JSP代码

    

模型

 @Entity @Table(name="login") public class Login implements Serializable { public Login() { } public Login(String userId1, String userPassword1) { userId1 = userId; userPassword1 = userPassword; } private String userId; private String userPassword; @Id @Column(name="USERID", nullable=false) public String getUserId() { return userId; } public void setUserId(String userId) { this.userId = userId; } @Column(name="USERPASSWORD", nullable=false) public String getUserPassword() { return userPassword; } public void setUserPassword(String userPassword) { this.userPassword = userPassword; } } 

视图

 public class LoginAction extends ActionSupport { private Login bean; public String login() { LoginManager manager=new LoginManager(); try { manager.add(getBean()); } catch(Exception e) { System.out.println(e.getMessage()); } return "success"; } public Login getBean() { return bean; } public void setBean(Login bean) { this.bean = bean; } 

拦截器

 public class LoggingInterceptor implements Interceptor { public void destroy() { System.out.println("Destorying......"); } public void init() { System.out.println("Initializing......"); } public String intercept(ActionInvocation actionInvocation) throws Exception { ActionConfig config = actionInvocation.getProxy().getConfig(); Map parameters = config.getParams(); String menuId = (String)parameters.get("userId"); System.out.println("Got it:"+menuId); return actionInvocation.invoke(); } 

}

此代码应该为您提供servlet请求中的参数。 假设您有一个参数值。

 public String intercept(ActionInvocation actionInvocation) throws Exception { Map parameters = ServletActionContext.getRequest().getParameterMap(); String userId = parameters.get("bean.userId")[0]; System.out.println("Got it:"+userId); return actionInvocation.invoke(); }