每次即便输入正确都是提示“两次密码输入不一致”,我查了下数据库,还会传个空值进去。怎么回事?大神快来帮帮我
register.jsp
用户名: <input type="text" name="username">*用户名不能为空<br>
设置密码:<input type="password" name="password">*密码需设置为4-12个字符<br>
确认密码:<input type="password" name="repassword"><br>
<input type="submit" value="提交">
<input type="reset" value="重置">
RegistAction.java的验证方法
public String execute() throws Exception {
User user=new User();//注册save()里的参数
//实例化:调用get方法获取表单中username,password,repasword的值
RegisterAction ra=new RegisterAction();
ra.setUsername(username);//保存到对象中
ra.setPassword(password);
if(ra.getUsername()==null||"".equals(ra.getUsername())){
message="用户名不能为空,请重新输入!";
return "input";
}
if(ra.getPassword()==null||"".equals(ra.getPassword())){
message="密码不能为空,请重新输入!";
return "input";
}
if(ra.getRepassword()==null||"".equals(ra.getRepassword())){
message="确认密码不能为空,请重新输入!";
return "input";
}
if(!ra.getPassword().equals(ra.getRepassword())) {
message="两次密码输入不一致,请重新输入!";
return "input";
}
//已运行
if(userDAO.findByName(username)>0){
message="你好,用户名:"+username+"已经注册,请重新选择用户名!";
return "input";
}
if(userDAO.save(user)==null){
return "input";
}
message="注册成功!";
return "success";
} ------解决思路----------------------
首先第一点,就是不应该在后台进行校验是否一致,应该用js来校验
你的错误在于,你没有对ra设置repassword,后面取出来是空,判断为假,自然向下走了。
------解决思路----------------------
用户名和密码的检验应该在jsp里啊……
后台检验是否已注册就好了

------解决思路----------------------
jsp里校验的是用户输入的是否符合要求(例如:两次密码是否一致、不能为空、特殊字符、长度要求等),
后台判断是否已注册,不放心就把空字符串判断再加上