第一种:
只要Action类继承了ActionSupport,就可以用验证方案了
是个原始的方案,需要自己写代码,但是很灵活,登陆案例
不足:业务处理和验证的代码混在一起,不方便验证部分的复用和维护
@Override public String execute() throws Exception { User user=userService.getUser(loginName); if(user==null){ addFieldError("loginName",getText("invalid.loginname"));//对应<s:fielderror/> // 显示与字段相关的错误信息 //addActionError 对应<s:actionerror/> 显示action的所有信息 <s:fielderror fieldName="loginName"/> 明白了吧loginName是这么来的 return INPUT;//表示需要重新输入 } else if(!user.getPassword().equals(password)){ addFieldError("password",getText("invalid.password")); return INPUT; } else{ sessionMap.put("user",user); return SUCCESS; } }
第二种:
重写validate()方法
业务和数据分离
不足:在业务方法之前被调用,当validate()方法验证不通过,那么action类的验证方法也不会被执行,也就是说validate()也管action所有验证,如果想对单个业务方法验证就不行了
第三种:
vlidateXxx()验证
Xxx()是写的要针对的具体的某个方法
时间: 2024-10-11 06:06:34