@NotNull,@NotBlank和 @NotEmpty使用

Posted coloz

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了@NotNull,@NotBlank和 @NotEmpty使用相关的知识,希望对你有一定的参考价值。

1.实体类

package com.example;


import org.hibernate.validator.constraints.NotBlank; 
import org.hibernate.validator.constraints.NotEmpty;

import javax.validation.constraints.NotNull;
import java.util.List;

/*
    @NotNull    验证对象是否不为null, 无法查检长度为0的字符串
    @NotBlank 检查约束 (字符串) 是不是Null还有被Trim的长度是否大于0,只对字符串,且会去掉前后空格.
    @NotEmpty 检查(集合)约束元素是否为NULL或者是EMPTY.
    ********上面导入的是两个包******
*/
public class Student {
    @NotNull(message = "用户ID不能为空")
    private Long userID;
    @NotEmpty(message = "地址不能为空")
    private List<String> addressID;
    @NotBlank(message = "备注不能为空")
    private String comment;

    public Student() {
    }
    public Long getUserID() {
        return userID;
    }
    public void setUserID(Long userID) {
        this.userID = userID;
    }
    public List getAddressID() {
        return addressID;
    }
    public void setAddressID(List addressID) {
        this.addressID = addressID;
    }
    public String getComment() {
        return comment;
    }
    public void setComment(String comment) {
        this.comment = comment;
    }
    @Override
    public String toString() {
        return "Order{" +
                "userID=" + userID +
                ", addressID=" + addressID +
                ", comment=‘" + comment + ‘‘‘ +
                ‘}‘;
    }

}

 

2.Controller

    @RequestMapping("/create")
    @ResponseBody
    public String create(@RequestBody @Valid Student dto, BindingResult results) {
        if (results.hasErrors()) {
            return results.getFieldError().getDefaultMessage();
        }
        return dto.toString();
    }

3.postman测试

技术图片

 

 json对象

{
"addressID":["address1","address2","address3"],
"comment":"备注...",
"userID":100
}

 

 总结:  1.注意注解引用的包不一样

   2. @NotEmpty 用在集合类上面
    @NotBlank 用在String上面
    @NotNull    用在基本类型上

 

 

 

 

以上是关于@NotNull,@NotBlank和 @NotEmpty使用的主要内容,如果未能解决你的问题,请参考以下文章

在 Hibernate Validator 4.1+ 中,@NotNull、@NotEmpty 和 @NotBlank 有啥区别?

@NotEmpty@NotNull 和 @NotBlank 的区别

@NotNull,@NotEmpty,@NotBlank区别

后端验证:@NotNull、 @NotBlank、 @length

Bean Validation @NotNull、@NotBlank 和 @NotEmpty 在 JSF+Tomcat 中不起作用

@NotNull@NotEmpty@NotBlank的区别