我想用文本驗證綁定JTextfield,然後將其綁定到pojo模型。我的目標是允許用戶鍵入特定文本長度的某些允許字符集,並使用綁定來設置模型中的文本。代碼片段如下。帶有數據驗證和Beansbinding的JtextField
public class TestValidationBinding { private JTextField field; private ModelVo modelVo; public TestValidationBinding() { field = new JTextField(); modelVo = new ModelVo(); field.setDocument(new PlainDocument() { private static final long serialVersionUID = 1L; @Override public void insertString(int offs, String str, AttributeSet a) throws BadLocationException { // other validation for key typing, check length int limit = 15; if (str == null) { return; } if ((getLength() + str.length()) <= limit) { super.insertString(offs, str, a); } } }); Property srcProperty = BeanProperty.create("text"); Property tgtProperty = BeanProperty.create("text"); AutoBinding binding = Bindings .createAutoBinding(UpdateStrategy.READ_WRITE, field, srcProperty, modelVo, tgtProperty); binding.bind(); } }
的ModelVO類是:
public class ModelVo { private String text; public String getText() { return text; } public void setText(String text) { System.out.println("Text is:" + text); this.text = text; } }
我使用AspectJ來火在ModalVO類必要的財產變化。 (跟隨此鏈接以實現此目的:: http://yakafokon.wordpress.com/2008/12/02/beans-binding-jsr-295-with-pojo-and-aop/#comments)。
現在,我的問題是,如果我不使用綁定,驗證正確完成,但文本沒有設置爲模態。但是,如果我綁定文本字段,文本將在模型中正確設置,但驗證不起作用。任何人都可以提供見解爲什麼當我同時使用驗證和綁定時它不工作?
問候, GeorgeB
非常感謝你,它工作... – 2011-01-22 13:15:27