我不确定我是否理解BeanFieldGroup,但我希望它应该将字段(UI组件)中的值绑定到我的自定义bean(例如POJO)。
我有POJO。
public class JobConfigDTO {
@Max(50)
private String format;
@Max(50)
private String template;
@Max(50)
private String channel;
}
使用此代码,我尝试将我的POJO绑定到复选框。
private void test(){
JobConfigDTO jobConfigDTO = new JobConfigDTO();
ComboBox comboChannel = createEditFormCombobox("Channel", "CHANNEL");
ComboBox comboFormat = createEditFormCombobox("Format", "FORMAT");
ComboBox comboTemplate = createEditFormCombobox("Template", "TEMPLATE");
BeanFieldGroup<JobConfigDTO> binder = new BeanFieldGroup<>(JobConfigDTO.class);
binder.setItemDataSource(jobConfigDTO);
binder.setBuffered(false);
binder.bind(comboChannel, "channel");
binder.bind(comboChannel, "channel");
binder.bind(comboFormat, "format");
binder.bind(comboTemplate, "template");
Button btnSave = new Button("Add");
btnSave.addClickListener(new Button.ClickListener() {
@Override
public void buttonClick(Button.ClickEvent event) {
try {
log.debug("jobconfigdto {}", jobConfigDTO);
binder.setBuffered(true);
log.debug("jobconfigdto {}", jobConfigDTO);
binder.commit();
binder.setBuffered(false);
} catch (FieldGroup.CommitException e) {
log.error("Unable to save job config", e);
}
}
});
}
当我在表单中设置组合框的值并单击添加按钮时,pojo JobConfigDTO未填充。
我错过了什么或BeanFieldGroup有另一种用法吗?我想将复选框中的值绑定到我的pojo类,并在最后验证它们。