package com.thomas.login.validator;
import com.thomas.login.bean.Address;
import com.thomas.login.bean.User;
import org.springframework.validation.Errors;
import org.springframework.validation.ValidationUtils;
import org.springframework.validation.Validator;
/**
* Created by thomas on 16-1-9.
*/
public class UserValidator implements Validator
{
private static final Integer MIN_PASSWD_LEN = 6;
private final Validator addressValidator;
public UserValidator(Validator addressValidator)
{
if(null == addressValidator)
throw new IllegalArgumentException("The address validator can't be null");
if(!addressValidator.supports(Address.class))
throw new IllegalArgumentException("The address validator must support Address Class");
this.addressValidator = addressValidator;
}
public boolean supports(Class<?> aClass)
{
return User.class.equals(aClass);
}
public void validate(Object o, Errors errors)
{
//名字、密码非空验证
ValidationUtils.rejectIfEmptyOrWhitespace(errors, "name", "name.empty");
ValidationUtils.rejectIfEmptyOrWhitespace(errors, "password", "password.empty");
User user = (User) o;
//密码最短长度验证
if(!errors.hasFieldErrors("password"))
{
String password = user.getPassword();
if(password.length() < MIN_PASSWD_LEN)
errors.rejectValue("password", "password.too.short", new Object[]{MIN_PASSWD_LEN}, null);
}
//地址验证
try{
errors.pushNestedPath("address");
ValidationUtils.invokeValidator(addressValidator, user.getAddress(), errors);
}finally {
errors.popNestedPath();
}
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
LoginValidation.zip (43个子文件)
LoginValidation
pom.xml 5KB
src
main
webapp
WEB-INF
web.xml 1KB
login.jsp 1KB
success.jsp 201B
resources
dispatcher-servlet.xml 1KB
validationMessage.properties 188B
validationMessage_zh_CN.properties 275B
spring-config.xml 580B
java
com
thomas
login
bean
User.java 679B
Address.java 477B
controller
LoginController.java 1KB
IndexController.java 481B
validator
AddressValidator.java 680B
UserValidator.java 2KB
.idea
uiDesigner.xml 9KB
misc.xml 2KB
.name 15B
copyright
profiles_settings.xml 76B
modules.xml 270B
encodings.xml 200B
compiler.xml 1KB
workspace.xml 56KB
libraries
Maven__aopalliance_aopalliance_1_0.xml 514B
Maven__commons_io_commons_io_2_4.xml 503B
Maven__org_apache_commons_commons_dbcp2_2_1_1.xml 570B
Maven__javax_servlet_jsp_jsp_api_2_1.xml 510B
Maven__org_apache_commons_commons_pool2_2_3.xml 556B
Maven__junit_junit_4_11.xml 455B
Maven__org_springframework_spring_beans_4_2_1_RELEASE.xml 623B
Maven__org_springframework_spring_aop_4_2_1_RELEASE.xml 609B
Maven__org_hamcrest_hamcrest_core_1_3.xml 532B
Maven__commons_logging_commons_logging_1_2.xml 558B
Maven__org_springframework_spring_context_4_2_1_RELEASE.xml 637B
Maven__org_springframework_spring_core_4_2_1_RELEASE.xml 616B
Maven__commons_lang_commons_lang_2_6.xml 525B
Maven__org_springframework_spring_expression_4_2_1_RELEASE.xml 658B
Maven__org_springframework_spring_web_4_2_1_RELEASE.xml 609B
Maven__javax_servlet_servlet_api_2_5.xml 522B
Maven__javax_validation_validation_api_1_1_0_Final.xml 611B
Maven__org_springframework_spring_webmvc_4_2_1_RELEASE.xml 630B
artifacts
LoginValidation_war_exploded.xml 2KB
LoginValidation_war.xml 312B
LoginValidation.iml 3KB
共 43 条
- 1
资源评论
蓝魔魔
- 粉丝: 31
- 资源: 5
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功