很抱歉,如果已经提出这个问题,但搜索完这些主题后仍无法解决问题。
我有非常简单的bean,如下所示,
<code>
public class FileBean extends AbstractFileBean {
...
private int headingRow = 0;
private ColumnDefinition columnSet;
...
}
</code>
现在使用上面的bean,我试图将这些属性绑定到UI字段,如下所示。
<code>
public AddCsv(AbstractFileBean fileBean) {
csvbinder = new BeanFieldGroup<FileBean>(FileBean.class);
csvbinder.setItemDataSource((FileBean) fileBean);
csvbinder.setBuffered(false);
csvbinder.bind((TextField)form.getField(UIField.NAME), "name");
csvbinder.bind((IntStepper)form.getField(UIField.HEADINGROW), "headingRow");
ComboBox columnDefinitions = (ComboBox)form.getField(UIField.COLUMNDEF);
csvbinder.bind(columnDefinitions, "columnSet");
//AddFileUtil.populateColumnSets(columnDefinitions,fileBean); - this method fills up combo box
...
}
</code>
问题:我有一个带有上述字段集的表单。在“上传新文件”的同一表格上还有另一个按钮,它基本上从系统中获取文件,并按照服务层设置名称和路径,如下所示
<code>
fileBean.setName(file.getName());
fileBean.setFilePath(filePath);
</code>
选择文件后,返回相同的表单不会显示填充的UI字段。奇怪的是,当您在名称文本字段内的那些表单字段中手动键入时,会填充在filebean中。但唯一的问题是其他方式。选择文件后。这些UI字段仍显示为空白。
在设置活页夹时是否缺少某些东西,而不让UI刷新?
如果需要更多信息,请告诉我。
提前致谢,
答案 0 :(得分:4)
您需要更新BeanItem<FileBean>
而不是Bean
,否则没有人会真正注意到更改。
BeanItem<FileBean> item = csvbinder.getItemDataSource();
item.getItemProperty("name").setValue(file.getName());
item.getItemProperty("filePath").setValue(filePath);