java中@NotBlank限制属性不能为空
作者:狗狗狗狗狗乐啊
在实体类的对应属性上添加 @NotBlank 注解,可以实现对空置的限制。除了 @NotBlank 外,还有 @NotNull 和 @NotEmpty ,它们的区别如下所示:
1.String name = null; @NotNull: false @NotEmpty:false @NotBlank:false 2.String name = ""; @NotNull:true @NotEmpty: false @NotBlank: false 3.String name = " "; @NotNull: true @NotEmpty: true @NotBlank: false 4.String name = "Great answer!"; @NotNull: true @NotEmpty:true @NotBlank:true
需要注意的是 @NotNull 一般作用在 Integer 类型上,其还可以配合 @size、@Max、@Min 对字段的数值大小进行控制。而 @NotEmpty 表示不能为空,且长度必须大于 0 ,一般用在集合类或数组上。 @NotBlank 只能作用在 String 类型上,并且调用 trim() 后,长度必须大于 0 。
同时,使用 @NotBlank 等注解时,一定要和 @valid 一起使用,不然@NotBlank不起作用,如:
@PostMapping("/save") @ApiOperation(value = "新增", notes = "传入supplementaryMaterial") public ActionResult save(@Valid @RequestBody SupplementaryMaterial supplementaryMaterial) { return new ActionResult().status(supplementaryMaterialService.save(supplementaryMaterial)); }
@NotEmpty、@NotBlank、@NotNull三种注解的区别
1. @NotEmpty
@NotEmpty
注解用于验证一个字符串、集合或数组是否为空。它检查目标对象是否为 null,并且长度是否为零。换句话说,被 @NotEmpty
注解标注的字段必须至少包含一个非空字符、元素或项。
public class User { @NotEmpty private String username; // Getter and Setter }
在上面的例子中,username
字段被标注为 @NotEmpty
,这意味着在验证时,username
必须既不为 null,也不为空字符串。
2. @NotBlank
@NotBlank
注解也用于验证字符串是否为空,但它比 @NotEmpty
更严格。它会去除字符串两端的空格,并验证处理后的字符串是否为空。因此,@NotBlank
只适用于字符串类型的字段。
public class Product { @NotBlank private String productName; // Getter and Setter }
在上述示例中,productName
字段被标注为 @NotBlank
,这要求字段既不为 null,也不为空字符串,且去除两端空格后也不能为空。
3. @NotNull
相对于前两者,@NotNull
注解更加简单,它只检查目标字段是否为 null。这意味着它适用于所有类型的字段,包括字符串、对象、基本数据类型等。
public class Order { @NotNull private Long orderId; // Getter and Setter }
在上述代码中,orderId
字段被标注为 @NotNull
,这表示在处理时,orderId
不能为 null。
区别总结
@NotEmpty
验证字段不为 null,且长度不为零。适用于字符串、集合和数组。@NotBlank
验证字段不为 null,长度不为零,且去除两端空格后也不为空。仅适用于字符串。@NotNull
验证字段不为 null。适用于所有类型的字段。
到此这篇关于java中@NotBlank限制属性不能为空的文章就介绍到这了,更多相关java @NotBlank属性不能为空内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!