[英]Spring boot POST PDF Content type 'application/pdf not supported
[英]application / pdf is not a supported mime type at liferay 6.0.6
我為Liferay 6開發了一個自定義portlet。
單擊鏈接應打開彈出窗口,以打開/保存使用Jasper Reports生成的pdf文件。
我使用response.setContentType ("application/pdf"
),其中響應為RenderResponse
。
但它返回以下錯誤:
錯誤java.lang.IllegalArgumentException:com.liferay.portlet.MimeResponseImpl.setContentType(MimeResponseImpl.java:159)上不支持application / pdf的mime類型。
我還嘗試將標記添加到文件portlet.xml
<supports>
<mime-type> application/pdf </mime-type>
<portlet-mode> view </portlet-mode>
</supports>
但我總是遇到同樣的錯誤。
有什么建議嗎?
您應該在jsr-286中使用public void serveResource(ResourceRequest req, ResourceResponse res)
方法,並在此方法中使用res.setContentType("application/pdf")
;
根據Portlet 2.0(Liferay-6支持),我們有兩個新的Portlet階段: Resource
和Event
。
資源服務階段對於在Portlet中進行Ajax填充和下載(例如,提供圖像/文檔/ pdf /文件等資源)很有用。
因此,就像您創建一個renderURL
( <portlet:renderURL />
或renderResponse.createRenderURL()
)來調用portlet的render
或doView
方法一樣,您同樣需要創建一個resourceURL
( <portlet:resourceURL />
或renderResponse.createResourceURL()
)調用您的portlet的serveResource
方法。
在您的serveResource
方法中,您可以編寫您當前在render方法中編寫的代碼(可能需要進行一些修改)以下載pdf。
有關完整示例,您可以下載《 Portlet in Action 》第十二章的源代碼 ,並參考名為ch12_BookCatalogResourceURL的項目。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.