java中@NotBlank限制屬性不能為空
在實(shí)體類的對(duì)應(yīng)屬性上添加 @NotBlank 注解,可以實(shí)現(xiàn)對(duì)空置的限制。除了 @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 對(duì)字段的數(shù)值大小進(jìn)行控制。而 @NotEmpty 表示不能為空,且長(zhǎng)度必須大于 0 ,一般用在集合類或數(shù)組上。 @NotBlank 只能作用在 String 類型上,并且調(diào)用 trim() 后,長(zhǎng)度必須大于 0 。
同時(shí),使用 @NotBlank 等注解時(shí),一定要和 @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 注解用于驗(yàn)證一個(gè)字符串、集合或數(shù)組是否為空。它檢查目標(biāo)對(duì)象是否為 null,并且長(zhǎng)度是否為零。換句話說(shuō),被 @NotEmpty 注解標(biāo)注的字段必須至少包含一個(gè)非空字符、元素或項(xiàng)。
public class User {
@NotEmpty
private String username;
// Getter and Setter
}
在上面的例子中,username 字段被標(biāo)注為 @NotEmpty,這意味著在驗(yàn)證時(shí),username 必須既不為 null,也不為空字符串。
2. @NotBlank
@NotBlank 注解也用于驗(yàn)證字符串是否為空,但它比 @NotEmpty 更嚴(yán)格。它會(huì)去除字符串兩端的空格,并驗(yàn)證處理后的字符串是否為空。因此,@NotBlank 只適用于字符串類型的字段。
public class Product {
@NotBlank
private String productName;
// Getter and Setter
}
在上述示例中,productName 字段被標(biāo)注為 @NotBlank,這要求字段既不為 null,也不為空字符串,且去除兩端空格后也不能為空。
3. @NotNull
相對(duì)于前兩者,@NotNull 注解更加簡(jiǎn)單,它只檢查目標(biāo)字段是否為 null。這意味著它適用于所有類型的字段,包括字符串、對(duì)象、基本數(shù)據(jù)類型等。
public class Order {
@NotNull
private Long orderId;
// Getter and Setter
}
在上述代碼中,orderId 字段被標(biāo)注為 @NotNull,這表示在處理時(shí),orderId 不能為 null。
區(qū)別總結(jié)
@NotEmpty驗(yàn)證字段不為 null,且長(zhǎng)度不為零。適用于字符串、集合和數(shù)組。@NotBlank驗(yàn)證字段不為 null,長(zhǎng)度不為零,且去除兩端空格后也不為空。僅適用于字符串。@NotNull驗(yàn)證字段不為 null。適用于所有類型的字段。
到此這篇關(guān)于java中@NotBlank限制屬性不能為空的文章就介紹到這了,更多相關(guān)java @NotBlank屬性不能為空內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java postgresql數(shù)組字段類型處理方法詳解
這篇文章主要介紹了Java postgresql數(shù)組字段類型處理方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-10-10
mybatis中的擴(kuò)展實(shí)現(xiàn)源碼解析
這篇文章主要介給大家紹了關(guān)于mybatis中擴(kuò)展實(shí)現(xiàn)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-01-01
利用Java實(shí)現(xiàn)解析網(wǎng)頁(yè)中的內(nèi)容
這篇文章主要為大家詳細(xì)介紹了如何利用Java語(yǔ)言做一個(gè)解析指定網(wǎng)址的網(wǎng)頁(yè)內(nèi)容小應(yīng)用,文中的實(shí)現(xiàn)步驟講解詳細(xì),感興趣的可以嘗試下2022-10-10
Java-web中利用RSA進(jìn)行加密解密操作的方法示例
這篇文章主要給大家介紹了關(guān)于在Java-web中利用RSA進(jìn)行加密解密操作的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2018-08-08
Spring Cloud Gateway實(shí)現(xiàn)灰度發(fā)布方案
灰度發(fā)布是在微服務(wù)中的表現(xiàn)為同一服務(wù)同時(shí)上線不同版本,讓一部分用戶使用新版本來(lái)驗(yàn)證新特性,如果驗(yàn)證沒(méi)有問(wèn)題,則將所有用戶都遷移到新版本上,本文就來(lái)介紹一下如何實(shí)現(xiàn),感興趣的可以了解一下2023-12-12

