[英]Spring MVC Validation shows multiple error messages
嘗試在 Spring MVC 中執行驗證時遇到了一些問題。 這是我的驗證器 class:
@Component
public class LossOfCardValidator implements Validator {
public boolean supports(Class clazz) {
return SingleReplacementForm.class.equals(clazz);
}
public void validate(Object obj, Errors e) {
SingleReplacementForm p = (SingleReplacementForm) obj;
// check empty
ValidationUtils.rejectIfEmpty(e, "contactNumber", "NotNull.contactNumber");
// check integer
if (!p.getContactNumber().matches("[0-9]+")) {
e.rejectValue("contactNumber", "Format.contactNumber");
}
}
在我的 Controller 中,我這樣稱呼它:
LossOfCardValidator validator = new LossOfCardValidator ();
validator.validate(singleReplacementForm, bindingResult);
它確實執行了驗證。 但是,如果我沒有在聯系電話字段中輸入任何內容,則會顯示兩條錯誤消息。 無論如何修改它,首先它會檢查該字段是否為空,如果不是然后繼續檢查格式以便每次都只顯示一條錯誤消息?
謝謝!
您可以在Error error
object 上使用getFieldErrorCount方法來檢查contactNumber
字段上是否已經存在錯誤。 像這樣:
// check integer
if (e.getFieldErrorCount("contactNumber") <= 0 && !p.getContactNumber().matches("[0-9]+")) {
e.rejectValue("contactNumber", "Format.contactNumber");
}
這是具有最小更改集的最簡單修復。 您絕對應該查看@NotNull
和@Pattern
注釋驗證。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.