检票口:如何将Dynamic FileName(带有时间戳)设置为ResourceStream下载



我每次下载CSV文件时都在尝试实现为IREsource动态设置文件名的支持。

我已经附加了我的工作。这是覆盖和设置每个下载的自定义文件名的正确方法吗?有一个方法setFileName,也被列为选项。有人可以告诉我推荐哪个(setResponseheaders或setFilename(,以及如何最好地实施?我对检票口是相对较新的,并且仍在寻找自己的出路。

protected <T extends Object> IResource exportResource(String fileName,  final IDataExporter exporter, final DataTable<T, String> table)
{
final String file = fileName;
final ResourceStreamResource resource = new ResourceStreamResource()
    {
@Override
protected IResourceStream getResourceStream()
{
return new DataExportResourceStreamWriter(dataExporter,table);
}
@Override
protected void setResponseHeaders(ResourceResponse data, Attributes   attributes) {
String pattern = "yyyy-MM-dd_HH:mm:ss";
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(pattern);
String timestamp = simpleDateFormat.format(new Date());
String fileName = file.substring(0,   file.indexOf(".csv"))+"_"+timeStamp+".csv";
data.setFileName(fileName);
super.setResponseHeaders(data, attributes);
}

}

预先感谢。

您的实现将正常工作!要设置文件名,您可以覆盖任何使您访问ResourceResponse的方法。

最新更新