Valid

用于对象属性字段的规则检测。

示例

  1. /**
  2. * 员工对象
  3. */
  4. public class Employee {
  5. /** 姓名 */
  6. public String name;
  7. /** 年龄 */
  8. public Integer age;
  9. public String getName() {
  10. return name;
  11. }
  12. public void setName(String name) {
  13. this.name = name;
  14. }
  15. public Integer getAge() {
  16. return age;
  17. }
  18. public void setAge(Integer age) {
  19. this.age = age;
  20. }
  21. }
  1. @Controller
  2. public class TestController {
  3. @RequestMapping("/add")
  4. @ResponseBody
  5. public String add(Employee employee) {
  6. // TODO 保存到数据库
  7. return "新增员工成功";
  8. }
  9. }

判断姓名和年龄为必填项:

常规做法:

20191213152326142.png

应用@Valid:
  1. maven配置中引入@Vaild的依赖。
  2. 如果是Springboot项目,就不用引入了,它就存在于最核心的web开发包里面。

    1. <dependency>
    2. <groupId>org.springframework.boot</groupId>
    3. <artifactId>spring-boot-starter-web</artifactId>
    4. <version>2.0.5.RELEASE</version>
    5. </dependency>
  3. 如果不是Springboot项目,引入以下依赖: ```xml

    javax.validation validation-api 1.1.0.Final

org.hibernate hibernate-validator 5.4.1.Final

  1. 4. Employee类的属性上打上如下注解:
  2. ```java
  3. package com.zyq.beans;
  4. import javax.validation.constraints.NotBlank;
  5. import javax.validation.constraints.NotNull;
  6. import org.hibernate.validator.constraints.Length;
  7. import org.hibernate.validator.constraints.Range;
  8. /**
  9. * 员工对象
  10. *
  11. * @author sunnyzyq
  12. * @since 2019/12/13
  13. */
  14. public class Employee {
  15. /** 姓名 */
  16. @NotBlank(message = "请输入名称")
  17. @Length(message = "名称不能超过个 {max} 字符", max = 10)
  18. public String name;
  19. /** 年龄 */
  20. @NotNull(message = "请输入年龄")
  21. @Range(message = "年龄范围为 {min} 到 {max} 之间", min = 1, max = 100)
  22. public Integer age;
  23. public String getName() {
  24. return name;
  25. }
  26. public void setName(String name) {
  27. this.name = name;
  28. }
  29. public Integer getAge() {
  30. return age;
  31. }
  32. public void setAge(Integer age) {
  33. this.age = age;
  34. }
  35. }
  1. 在Controller对应方法上,对员工标上@Valid注解,表示对这个对象属性需要进行验证:

20191213162003927.png

  1. 在参数添加一个BindingResult,存放验证结果:

20191213162507228.png

  1. 对应获取验证结果的代码如下:

2019121316284259.png

常用注解

NotBlank

不是空白

Length

长度

NotNull && NotEmpty

非空

Range

范围

Size

大小
20191213164008691.png

转载

https://blog.csdn.net/sunnyzyq/article/details/103527380