【发布时间】:2021-01-21 19:36:46
【问题描述】:
我已将 wicket 1.x 迁移到 wicket 8.x。
我在下面添加了用于下载 excel 文件的代码,但在 excel 下载的所有其他页面中获得了第一个下载的文件。
ResourceLink<Object> excelLink = new ResourceLink<>("excel", new ResourceReference("downloadExcel") {
private static final long serialVersionUID = 1L;
@Override
public IResource getResource() {
byte [] exBytes = null;
try {
exBytes = new byte[0]; // Some excel file into byte format
} catch (Exception e) {
e.printStackTrace();
}
return new ByteArrayResource(fileFormat.getContextType(), exBytes, fileName);
}
});
excelLink.setOutputMarkupId(true);
excelLink.add(new Label("excelLabel", new ResourceModel("excelLabel")));
return excelLink;
我在所有其他页面中使用相同的 Excel 下载逻辑,在应用程序中所有页面中所有 Excel 文件的名称相同的所有页面中具有相同的 ResourceLink Id“excel”。
如果它正在维护缓存,那么如何清除缓存以在每个页面中下载正确的excel文件?
如果有人可以帮助我解决此问题,请告诉我,这将更加明显。
【问题讨论】:
-
你试过调试getResource()吗?每次点击下载按钮时都会执行吗?如果没有尝试在两次下载之间清理浏览器缓存?
-
是的,每次点击下载按钮时它都会执行。我已经尝试清除缓存,但是我首先下载的文件只有同一个文件才会在其他页面上的其他下载点击中获得下载。在我的情况下,其他页面中的文件名也相同。
标签: java spring wicket wicket-8