2012-04-14 26 views
1

取決於我想從我的MVCPortlet類重定向到一個JSP頁面,在liferay-portlet.xml設置action-url-redirect爲真後,條件重定向到JSP,我試圖用行動的Liferay 6:無法從MVCPortlet

Response.sendRedirect() 

和我得到這個錯誤在服務器控制檯:

設置渲染參數已經被稱爲

然後我試着使用:

include("/html/satportlet/view2.jsp", request, response); 

沒有異常被拋出,但仍然沒有在這種情況下發生的事情,我不知道爲什麼。

另一個問題,我是否認爲在Liferay中include和sendRedirect的概念與JSP和Servlets中的概念相同?

我使用的Liferay 6

回答

0

該Portlet API的行動階段和呈現階段有所不同:在操作階段(例如,當你有一個的ActionRequest/ActionResponse的可用),你不應該去想HTML輸出。

在渲染過程中,您決定顯示哪些內容 - 因此您只需記住操作處理期間的屬性或渲染參數。渲染時,您將重定向到/包含目標JSP。

+1

感謝Olaf Kock,但是我讀到的是,當使用MVCPortlet時,不需要重寫doView方法,因爲這是使用MVCPortlet的優勢之一,請讓我知道如果我錯了。提前致謝 。 – Gajjini 2012-04-16 11:46:22

2

無需重定向,添加操作方法的末尾如下:

response.setRenderParameter("jspPage", "/url/to/your/jsp");

這將導致"/url/to/your/jsp"頁面的渲染,以行動響應。

事實上,我需要重寫doView唯一時間是當欲加工定製示出了入口點視圖JSP之前(以避免在jsp本身寫入代碼,因爲Liferay的僅具有jsp-page/view-template作爲初始化參數,而不是控制器操作)。