![](/img/trans.png)
[英]Spring MVC validation: minimum one field required. At least one field required
[英]Spring MVC validation: Only one field is required
我正在此 API 中創建一個新端點,它接受包含用戶名或 5 位或 9 位電話號碼的請求。 我需要添加驗證來驗證包含用戶名或電話號碼的請求; 如果兩者都提供,則返回驗證錯誤。 這是我擁有的當前代碼。
@GetMapping("/users")
@Operation(summary = "API to return users based on username or phone number")
public ResponseEntity<List<UserResponseObject>> usersByNameOrNumber(
@Valid @RequestParam(name = "phone-number", required = false) @Pattern(regexp = "^(\\d{5}|\\d{9})$") String userPhoneNumber,
@Valid @PathVariable(name = "user-name", required = false) @Pattern(regexp = "^[a-zA-Z ]*$") String userName) {
try {
...
} catch (Exception e) {
...
}
}
如何修改此塊以滿足要求? 目前,這兩個字段都被標記為不需要,並且沒有進行驗證。 我希望它只需要這些字段之一不為空。
嘗試使用可選,我不知道你需要怎樣的解決方案。
@GetMapping("/users")
@Operation(summary = "API to return users based on username or phone number")
public ResponseEntity<List<UserResponseObject>> usersByNameOrNumber(
@Valid @RequestParam(value = "phoneNumber", required = false) @Pattern(regexp = "^(\\d{5}|\\d{9})$") Optional<String> phoneNumber,
@Valid @RequestParam(value = "userName", required = false) @Pattern(regexp = "^[a-zA-Z ]*$") Optional<String> userName) {
try {
if(phoneNumber.isPresent()){}
if(userName.isPresent()){}
} catch (Exception e) {
}
}
但我不確定 @Pattern 和 Optional 是否會正常工作,但可能是的。 也許是幫助,如果我很好理解你的問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.