我制作了一个表,它的数据源设置为 BeanItemContainer。每个 bean 都有一个名称(字符串)和一个 byte[],其中保存了一个转换为 byte[] 的文件。我在每一行添加了一个按钮,假设首先将文件转换为 pdf 来下载文件。我在执行下载部分时遇到了麻烦,这里是相关的代码:
public Object generateCell(Table source, Object itemId,
Object columnId) {
// TODO Auto-generated method stub
final Beans p = (Beans) itemId;
Button l = new Button("Link to pdf");
l.addClickListener(new Button.ClickListener() {
@Override
public void buttonClick(ClickEvent event) {
// TODO Auto-generated method stub
try {
FileOutputStream out = new FileOutputStream(p.getName() + ".pdf");
out.write(p.getFile());
out.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
l.setStyleName(Reindeer.BUTTON_LINK);
return l;
}
});
所以getFile从bean中获取字节数组