[英]Adding new line in error-message for vaadin form validation
我有一個綁定到 java 實體 model 的表單字段。 那 model 有一個注解:
@ValidPassword
private String password
它使用某些條件驗證字段並返回包含每個失敗條件的錯誤消息,這些條件由 '\n' 換行符分隔。
Vaadin 表單通過以下方式連接到此 model:
username = new TextField("Username");
username.addClassName("username-field");
password = new PasswordField("Password");
password.addClassName("password-field");
binder.forField(username ).asRequired().bind("username");
binder.forField(password).asRequired().bind("password");
將輸入寫入密碼字段會導致: image-link當我希望每個失敗的條件從新行開始時。
如果您想在 Vaadin 8 或類似 Vaadin 14 及更高版本中使用JSR-303 Bean 驗證,那么您需要使用BeanValidationBinder
而不是常規的Binder
。 同樣在這種情況下,您不應該使用構建綁定
binder.forField(password).asRequired().bind("password");
但只是使用
binder.bindInstanceFields(form);
此外,如果您需要自定義錯誤的顯示方式,您可以使用例如ValidationStatusHandler ,每次驗證狀態從有效變為無效時調用,反之亦然。 默認情況下,錯誤顯示在組件中。 您可以定義自己的組件,例如Html
,您可以在其中使用豐富的格式。
binder.forField(field).withValidationStatusHandler(handler -> {
if (handler.isError()) {
handler.getMessage().ifPresent(error -> {
Html html = new Html("<span>"+error+"</span>");
layout.add(html);
});
}
}).bind("property");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.