亲爱的社区:,我有一个crud(来自vaadin pro)并且想使用bindercrudeditor中的upload组件。upload组件没有存储值(或者缺少hasvalue接口),所以我不能使用binder。有没有办法不在crud中创建一个额外的按钮来上传文件,然后使用监听器就可以把它包含进来?
mznpcxlj1#
最简单的方法是使用 CustomField 瓦丁框架。实际需要确定的是返回类型。根据您选择返回类型的方式,设置字段的值也有点尴尬。因此,将此更多地作为伪代码示例。
CustomField
public class UploadField extends CustomField<InputStream> { InputStream is; FileBuffer buffer = new FileBuffer(); public UploadField() { Upload upload = new Upload(buffer); upload.setAcceptedFileTypes("image/jpeg"); upload.setMaxFiles(1); upload.addSucceededListener(event -> { is = buffer.getInputStream(); }); add(upload); } public String getFileName() { return buffer.getFileName(); } @Override protected InputStream generateModelValue() { return is; } @Override protected void setPresentationValue(InputStream newPresentationValue) { } }
1条答案
按热度按时间mznpcxlj1#
最简单的方法是使用
CustomField
瓦丁框架。实际需要确定的是返回类型。根据您选择返回类型的方式,设置字段的值也有点尴尬。因此,将此更多地作为伪代码示例。