目录

前言

表单验证,比如我们要实现未满12岁禁止注册,也就是age小于12,不能被直接添加到数据库,并返回提示信息。

修改实体

package cn.notemi.po;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.validation.constraints.Min;

/**
 * Title:User
 * Description:
 *
 * @author Flicker
 * @create 2017-08-03 下午 5:10
 **/
@Entity
public class User {
    @Id
    @GeneratedValue
    private Integer id;
    private String name;
    @Min(value = 12,message = "12岁以下禁止注册!")
    private Integer age;

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", age=" + age +
                '}';
    }

    public User() {
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    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;
    }
}

@Min(value = 12,message = "12岁以下禁止注册!"),通过@Min注解来标示age的传入值不能小于12,小于12的话就会返回message值,也就是提示信息。

来,我们在新增用户里面测试一下。

获取验证信息

/**
     * 新增用户
     * @return
     */
    @PostMapping(value = "/users")
    public Result<User> addUser(@Valid User user, BindingResult bindingResult){
        if (bindingResult.hasErrors()){
            System.out.println(bindingResult.getFieldError().getDefaultMessage());
            return null;;
        }
        user.setAge(user.getAge());
        user.setName(user.getName());
        return userRepository.save(user);
    }

@Valid 注解来标示验证对象。

通过bindingResult.getFieldError().getDefaultMessage()来获取验证信息。