validate注解做校验,so easy

303 阅读1分钟

pom.xml引入依赖

<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-validator</artifactId>
</dependency>
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
</dependency>

entity注解

@Data
public class Student {

    @NotBlank(message = "name不能为空")
    private String name;

    @Min(value = 18, message = "年龄不能小于18岁")
    private Integer age;

    @Email(message = "email格式错误")
    private String email;

    /**
     * 自定义注解 不能包含空格字符串
     */
    @CannotHaveBlank
    private String blank;

    /**
     * 正则校验
     */
    @Pattern(regexp = "^1(3|4|5|7|8)\\d{9}$", message = "手机号码格式错误")
    private String phone;

}

controllern层使用(@Validated加上才能生效)

    @RequestMapping(value = "/test")
    @ResponseBody
    public Object test(@Validated Student student, BindingResult result) {
        if (result.hasErrors()) {
            StringBuilder sb = new StringBuilder();
            result.getAllErrors().stream().forEach(s->sb.append(s.getDefaultMessage()+"\n"));
            return sb;
        }
        ........................
    }