Valid
示例
/**
* 员工对象
*/
public class Employee {
/** 姓名 */
public String name;
/** 年龄 */
public Integer age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
}
@Controller
public class TestController {
@RequestMapping("/add")
@ResponseBody
public String add(Employee employee) {
// TODO 保存到数据库
return "新增员工成功";
}
}
判断姓名和年龄为必填项:
常规做法:
应用@Valid:
- maven配置中引入@Vaild的依赖。
如果是Springboot项目,就不用引入了,它就存在于最核心的web开发包里面。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>2.0.5.RELEASE</version>
</dependency>
如果不是Springboot项目,引入以下依赖: ```xml
javax.validation validation-api 1.1.0.Final
4. 在Employee类的属性上打上如下注解:
```java
package com.zyq.beans;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import org.hibernate.validator.constraints.Length;
import org.hibernate.validator.constraints.Range;
/**
* 员工对象
*
* @author sunnyzyq
* @since 2019/12/13
*/
public class Employee {
/** 姓名 */
@NotBlank(message = "请输入名称")
@Length(message = "名称不能超过个 {max} 字符", max = 10)
public String name;
/** 年龄 */
@NotNull(message = "请输入年龄")
@Range(message = "年龄范围为 {min} 到 {max} 之间", min = 1, max = 100)
public Integer age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
}
- 在Controller对应方法上,对员工标上@Valid注解,表示对这个对象属性需要进行验证:
- 在参数添加一个BindingResult,存放验证结果:
- 对应获取验证结果的代码如下: