本文介紹了活頁夾中的Vaadin上傳組件,例如CRUD編輯器的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!
問題描述
我有一個Crud(來自Vaadin Pro),我想使用BinderCrudEditor中的Upload組件。Upload組件沒有存儲值(或者更確切地說,缺少HasValue接口),所以我不能使用綁定器。是否有辦法以某種方式將其包括在內,而無需在Crud中創建用于文件上載的額外按鈕,然后使用偵聽器?
推薦答案
最簡單的方法可能是使用Vaadin框架的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) {
}
}
這篇關于活頁夾中的Vaadin上傳組件,例如CRUD編輯器的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,