java中@NotBlank限制屬性不能為空
在實體類的對應屬性上添加 @NotBlank 注解,可以實現(xiàn)對空置的限制。除了 @NotBlank 外,還有 @NotNull 和 @NotEmpty ,它們的區(qū)別如下所示:
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 對字段的數(shù)值大小進行控制。而 @NotEmpty 表示不能為空,且長度必須大于 0 ,一般用在集合類或數(shù)組上。 @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三種注解的區(qū)別
1. @NotEmpty
@NotEmpty 注解用于驗證一個字符串、集合或數(shù)組是否為空。它檢查目標對象是否為 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。這意味著它適用于所有類型的字段,包括字符串、對象、基本數(shù)據(jù)類型等。
public class Order {
@NotNull
private Long orderId;
// Getter and Setter
}
在上述代碼中,orderId 字段被標注為 @NotNull,這表示在處理時,orderId 不能為 null。
區(qū)別總結
@NotEmpty驗證字段不為 null,且長度不為零。適用于字符串、集合和數(shù)組。@NotBlank驗證字段不為 null,長度不為零,且去除兩端空格后也不為空。僅適用于字符串。@NotNull驗證字段不為 null。適用于所有類型的字段。
到此這篇關于java中@NotBlank限制屬性不能為空的文章就介紹到這了,更多相關java @NotBlank屬性不能為空內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Java postgresql數(shù)組字段類型處理方法詳解
這篇文章主要介紹了Java postgresql數(shù)組字段類型處理方法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-10-10
利用Java實現(xiàn)解析網(wǎng)頁中的內(nèi)容
這篇文章主要為大家詳細介紹了如何利用Java語言做一個解析指定網(wǎng)址的網(wǎng)頁內(nèi)容小應用,文中的實現(xiàn)步驟講解詳細,感興趣的可以嘗試下2022-10-10
Spring Cloud Gateway實現(xiàn)灰度發(fā)布方案
灰度發(fā)布是在微服務中的表現(xiàn)為同一服務同時上線不同版本,讓一部分用戶使用新版本來驗證新特性,如果驗證沒有問題,則將所有用戶都遷移到新版本上,本文就來介紹一下如何實現(xiàn),感興趣的可以了解一下2023-12-12

