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

最新文章

  1. CLR 这些年有啥变化吗?
  2. 常用js字符串方法学习总结
  3. youtube下载
  4. ubuntu如何开启root,如何启用Ubuntu中root帐号
  5. oracle的存储结构
  6. Clearing Search Values
  7. jquery禁用右键、文本选择功能、刷新
  8. Cracking the coding interview--Q1.8
  9. cf467A George and Accommodation
  10. netconf选用秘钥登录
  11. MYSQL ORDER BY Optimization
  12. Android面试题摘录
  13. yarn一直在跑一个用户为dr.who的application
  14. springboot情操陶冶-初识springboot
  15. app -webkit-box-orient: vertical 打包后不显示
  16. eclipse下SpringMVC+Maven+Mybatis+MySQL项目搭建
  17. 多线程系列之二:Single Thread Execution 模式
  18. SQL Server双机热备之后项目的FailOver自动连接
  19. Unity --- 纹理压缩基本知识点
  20. jQuery的selector和context属性

热门文章

  1. python-用户输入和while循环
  2. http_response_code()和header()
  3. tp3.2 事务 和 tp5.0事务
  4. nginx 配置大吞吐量
  5. NGINX反向代理,后端服务器获取真实IP
  6. [Qt] Release模式下产生调试信息
  7. POJ2044 天气预报---状态细则
  8. MAC攻击及缺陷
  9. Linux改中文乱码显示
  10. 【Linux题目】第六关