从MVCPortlet创建附件 - serveResource

时间:2014-04-18 07:13:48

标签: file download liferay portlet

当用户点击超链接时,我需要导出.property文件。我正在使用liferay门户网站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上设置一些内容?

我尝试了不同的选择并且筋疲力尽。普通java servlet上的相同代码可以工作,但不适用于liferay。有什么我想念的吗?提前谢谢!

1 个答案:

答案 0 :(得分:0)

尝试在PortletResponseUtil.sendFile()上使用portletOutputStream而不是手动操作。例如

PortletResponseUtil.sendFile(resourceRequest, resourceResponse, "test.txt", "key=value".getBytes())