struts2验证问题
登录验证,如果第一次输入错误,以后即使输入正确也无法登录代码如下:
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;
} --------------------编程问答-------------------- 那就是出异常了! --------------------编程问答-------------------- 从页面传递过来的值吗?
添加个打印语句 看看每次传递过来的值
看看程序内容执行了没有。 --------------------编程问答-------------------- 修改xml文件,改成单例的。 --------------------编程问答-------------------- scope参数设置为prototype --------------------编程问答-------------------- 这个属于与Spring整合的问题,Spring容器在初始化对象的时候会根据bean的scope配置来考虑是重新建立一个对象,还是继续使用原来的对象,拿struts2的action的bean来说,如果scope这个参数没有配置,就不会新建action,每次调用的时候会使用原来的action,所以该类的所有字段会保留,这样异步访问的时候会出问题,所以需要将scope参数设置为prototype,这样每次调用都会新建一个action!
补充:Java , Java EE