登录验证,如果第一次输入错误,以后即使输入正确也无法登录
代码如下:
public String login() throws Exception {
personinfo = (Personinfo)account.getPersoninfos().iterator().next();
session.put("user", account);
session.put("personinfo", personinfo);
return SUCCESS;
}
public void validateLogin(){
Account a = userBiz.getAccount(account.getUsername());
if(a == null){
this.addFieldError("username", "用户名不存在");
}else{
if(!a.getPassword().equals(account.getPassword())){
this.addFieldError("password", "密码不正确");
}
}
account = a;
}

解决方案 »

  1.   

    这个属于与Spring整合的问题,Spring容器在初始化对象的时候会根据bean的scope配置来考虑是重新建立一个对象,还是继续使用原来的对象,拿struts2的action的bean来说,如果scope这个参数没有配置,就不会新建action,每次调用的时候会使用原来的action,所以该类的所有字段会保留,这样异步访问的时候会出问题,所以需要将scope参数设置为prototype,这样每次调用都会新建一个action!