当用户单击超链接时,我需要导出一个.properties文件。我正在使用救生筏入口6.1.1。当用户单击超链接时,我正在对MyMVCPortlet类中的serveResource方法进行jquery.get()。这里的代码总是将内容写入响应(在fiddler上验证),但没有创建可下载的文件。
resourceResponse.reset();
resourceResponse.setContentType("text/plain");
resourceResponse.setProperty("content-disposition", "attachment; filename=test.txt");
OutputStream out = resourceResponse.getPortletOutputStream();
try {
out.write("key=value".getBytes());
}
catch(IOException e){
e.printStackTrace();
}
finally {
out.close();//Also tried out.flush(); - dint help
}
写入完成后,我是否需要在resourceResponse上设置一些内容?
我尝试了不同的选择,结果筋疲力尽。在普通的javaservlet上也有同样的代码,但在liferay上却没有。我缺什么了吗?提前感谢!
尝试使用其中一个PortletResponseUtil.sendFile()
,而不是对portletOutputStream
进行手动操作。例如
PortletResponseUtil.sendFile(resourceRequest, resourceResponse, "test.txt", "key=value".getBytes())