用ActionSupport实现验证

第一种:

只要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()是写的要针对的具体的某个方法

原文地址:https://www.cnblogs.com/Angelinas/p/5528834.html