Vaadin을 사용하여 콤보 상자의 값을 확인하려고합니다. 내 목표는 선택한 개체의 'myIntegerAttribute'필드가 null로 설정된 상태로 양식을 커밋하지 않는 것입니다. 콤보 박스가 'MyBean'클래스 객체를 저장한다는 것을 알았습니다.Vaadin 콤보 박스 확인
"FilterableListContainer"를 사용하여 데이터를 바인딩하고 있습니다. 이 시도하지만 발리 해고되지 않는 것 같습니다 :
List<MyBean> myBeans = getMyBeansList();
FilterableListContainer filteredMyBeansContainer = new FilterableListContainer<MyBean>(myBeans);
comboBox.setContainerDataSource(filteredMyBeansContainer);
comboBox.setItemCaptionPropertyId("caption");
...
comboBox.addValidator(getMyBeanValidator("myIntegerAttribute"));
...
private BeanValidator getMyBeanValidator(String id){
BeanValidator validator = new BeanValidator(MyBean.class, id);//TrafoEntity
return validator;
}
class MyBean {
String caption;
Integer myIntegerAttribute;
...
}
내가 콤보 상자에 null 값을 선택하지 않도록하고 싶지 않아요.
null 값을 커밋하지 않으려면 어떻게해야합니까? BeanValidator을 사용하여, 사용자의 선택에 해당하는 객체의 멤버가 null의 경우
NullValidator nv = new NullValidator("Cannot be null", false);
comboBox.addValidator(nv);
유효성 검사 실패 :
양식에 바인더를 사용하거나 수동으로 레이아웃에 구성 요소를 추가하고 있습니까? "커밋"부분을 포함한 전체 코드를 표시하면 시나리오 이해에 도움이됩니다. – Morfic
예, 기본 게시물에 세부 정보를 추가했습니다. – Ortzi