springmvc 校验---spring校验
springmvc提供了灵活的可拓展的校验方式,根据不同的项目可选择适合的校验方式,首先介绍下springmvc中内置的校验实现方式!
1、实现 org.springframework.validation.Validator;接口
2、public boolean supports(Class<?> clazz),public void validate(Object target, Errors errors) 实现接口下的两个方法,
3,具体实现方式:
@Override
public boolean supports(Class<?> clazz)
{
return this.getClass().equals(clazz);
}
@Override
public void validate(Object target, Errors errors)
{
ValidationUtils.rejectIfEmpty(errors, "name", "name.empty");
MyValidation p = (MyValidation) target;
if (p.name.length() < 10)
{
errors.rejectValue("name", "用户名长度需要大于等于10!");
}
System.out.println("-------校验完成====" + errors.hasErrors());
}
ValidationUtils是个很好用的工具类,实现了大部分通用的方法。
4.使用自定义校验时,我们的controller需要设置initBinder
@InitBinder
protected void initBinder(WebDataBinder binder)
{
binder.setValidator(new MyValidation());//设置为自定义校验类
}
public String validate(@Validated MyValidation validate,
BindingResult result)
{
if (result.hasErrors())
{
log.info("有错误");
log.info("错误信息为:" + result.getFieldError("name") + ":"
+ result.getFieldValue("name"));
}
log.info("没有错误!" + validate);
return "index";
}
注意使用@Validated而不是@Valid
最新文章
- CLR 这些年有啥变化吗?
- 常用js字符串方法学习总结
- youtube下载
- ubuntu如何开启root,如何启用Ubuntu中root帐号
- oracle的存储结构
- Clearing Search Values
- jquery禁用右键、文本选择功能、刷新
- Cracking the coding interview--Q1.8
- cf467A George and Accommodation
- netconf选用秘钥登录
- MYSQL ORDER BY Optimization
- Android面试题摘录
- yarn一直在跑一个用户为dr.who的application
- springboot情操陶冶-初识springboot
- app -webkit-box-orient: vertical 打包后不显示
- eclipse下SpringMVC+Maven+Mybatis+MySQL项目搭建
- 多线程系列之二:Single Thread Execution 模式
- SQL Server双机热备之后项目的FailOver自动连接
- Unity --- 纹理压缩基本知识点
- jQuery的selector和context属性