0
A
回答
0
維護一面旗幟。在繼續之前,檢查是否設置了標誌。在驗證代碼中,如果驗證失敗,則設置標誌。
+0
我爲Validator代理創建了一個工廠類它跟蹤所有驗證並能夠返回所有驗證器是否驗證。像這樣工作'textField.addValidator(allValid.too(new EmailValidator(「請輸入一個有效的電子郵件地址」)));''和'allValid.isAllValid()' –
1
Vaadin中有幾種處理驗證的方法,全部由Vaadin支持(不需要自定義布爾值afterValidationFlag)。 一個(由我較受歡迎),可能的方式如下圖所示:
public class CustomWindow extends Window {
DateField customBeanFirstPropertyName = new DateField("Caption1");
ComboBox customBeanSecondPropertyName = new ComboBox("Caption2");
TextArea customBeanThirdPropertyName = new TextArea("Caption3");
BeanFieldGroup<CustomBean> binder = new BeanFieldGroup<>(CustomBean.class);
public CustomWindow(CustomBean customBean) {
buildLayout();
binder.buildAndBindMemberFields(this);
binder.setItemDataSource(new BeanItem<>(customBean));
//add validators
customBeanFirstPropertyName.addValidator((Validator) value -> {
if (value == null) throw new Validator.InvalidValueException("nonnull required");
});
customBeanThirdPropertyName.addValidator(
new RegexpValidator(".{3,20}", "length between 3-20 required")
);
/*
or have basic validators on @Entity level with e.g. javax.validation.constraints.Size
example:
@Size(min = 3, max = 20)
@Column(name = "customBeanThirdPropertyName", unique = true)
private String customBeanThirdPropertyName;
*/
}
void commit(Button.ClickEvent event) { //method called by "save" button
try {
binder.commit(); //internally calls valid() method on each field, which could throw exception
CustomBean customBeanAfterValidation = binder.getItemDataSource().getBean(); //custom actions with validated bean from binder
this.close();
} catch (FieldGroup.CommitException e) {
Map<Field<?>, Validator.InvalidValueException> invalidFields = e.getInvalidFields(); //do sth with invalid fields
}
}
}
1
如果使用FIELDGROUP實例綁定的屬性,這是推薦的方式你的領域,你可以這樣寫:
fieldGroup.isValid();
這將檢查字段組管理的字段的所有字段驗證。
相關問題
- 1. 檢查視窗是否可見的最佳方法是什麼?
- 2. 檢查FileInputStream是否關閉的最佳方法是什麼?
- 3. 什麼是檢查用戶是否有權訪問實體的最佳方法
- 4. 上個月檢查用戶是否有問題的最佳方法是什麼?
- 5. 什麼是檢查頁面是否具有jQuery,jQuery.ui和jQuery.ui.css的最佳方法
- 6. 檢查表單中所需字段的最佳方法是什麼?
- 7. 什麼是檢查用戶是否登錄的最有效的方法?
- 8. 檢查列表字典中是否有值的最佳方法?
- 9. 檢查DTL中的字段是否爲空的最佳方法
- 10. 檢查json數據中所有字段的最佳方法?
- 11. 檢查存在ExecuteScalar結果的最有效方法是什麼?
- 12. 您最喜歡的方法是檢查HTML COLOR是否有效?
- 13. 檢查junit中所有語句是否引發異常的最有效方法是什麼?
- 14. 什麼是檢查字符串是否是更大字符串的一部分的最有效方法?
- 15. 檢查另一個字符串是否存在的最佳方法是什麼?
- 16. 檢測關閉表單的所有方法的最佳方法是什麼?
- 17. 檢測IDataReader是否爲空的最佳方法是什麼?
- 18. 檢查MongoDB中是否存在具有字段值的文檔的最佳做法是什麼?
- 19. 檢查字符串是否以TCL中的某個字符開始的最有效方法是什麼?
- 20. 這是檢查它是否是Multiple If或有ArrayList檢查的有效方法
- 21. 檢查UTF16字符串中的所有字符是否有效?
- 22. 查看RadioButtonList是否具有選定值的最佳方法是什麼?
- 23. 最好的方法來檢查一個URL是否有效
- 24. 檢查查詢字符串是否爲int的最佳方法?
- 25. 在MySQL中使用字段的最有效方式是什麼?
- 26. 什麼是打印java類中字段的所有值的最佳方式
- 27. 檢查所有數組值是否在一個範圍內的最佳方法
- 28. 什麼是最有效的設備檢測方法?
- 29. 什麼是確保所有選擇下拉字段完成的最佳方式?
- 30. LINQtoSQL:檢查插入行是否存在的最佳方法是什麼?
取決於您使用的數據模型,但這裏有一個有趣的鏈接http://demo.vaadin.com/book-examples-vaadin7/book#component.field.validation.basic –