簡體   English   中英

@PathVariable 上的多個 javax.validation.constraints 驗證

[英]Multiple javax.validation.constraints validations on @PathVariable

我正在對路徑變量應用多個驗證

@PathVariable(name = "id")
  @NotBlank(message = "Missing required field")
  @Size(min = 1, max = 3, message = "Invalid input size")
String id

現在,當我在路徑參數中發送空字符串時,我收到了兩條消息,因為兩次驗證都失敗了。

對於我的參數id ,我想要兩個驗證,但它不應該在我發送空字符串時同時拋出兩個錯誤消息。

我只想扔

“缺少必填字段”

而不是兩者。

NotBlankNotNullNotEmpty驗證的兩種功能的組合。 因此@NotBlank將在綁定的 pathVariable 為null和為empty時觸發。

由於您已經有了@Size(min = 1, max = 3, message = "Invalid input size")您已經在檢查 if not empty 如果 pathVariable 為empty字符串,此注釋將與@NotBlank同時觸發。

因此,當它是null時,您只需要進行不同的約束驗證,這樣強制約束的 2 個注釋就不會相互覆蓋。

作為解決方案,您可以將@NotBlank替換為@NotNull

@PathVariable(name = "id")
  @NotNull(message = "Missing required field")
  @Size(min = 1, max = 3, message = "Invalid input size")
String id

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM