1、使用Java代碼使用重新導向
直接調用
result.jsp 是要轉向的頁面地址。
String portletName = (String)actionRequest.getAttribute(WebKeys.PORTLET_ID); ThemeDisplay themeDisplay = (ThemeDisplay) actionRequest.getAttribute(WebKeys.THEME_DISPLAY); PortletURL redirectURL = PortletURLFactoryUtil.create(PortalUtil.getHttpServletRequest(actionRequest), portletName, themeDisplay.getLayout().getPlid(), PortletRequest.RENDER_PHASE); redirectURL.setParameter("jspPage", "/result.jsp");
也可加一些其他參數
redirectURL.setParameter("test", "value");
redirectURL.setParameter("jspPage", "/result.jsp");
actionResponse.sendRedirect(redirectURL.toString());
2、使用include 添加不同的jsp頁面
沒有測試能不能傳參數。
doView 在每次重新整理頁面是都會調用。當然包括提交表單後。
public void doView(RenderRequest renderRequest,RenderResponse renderResponse) throws IOException, PortletException {System.out.println("doView!!");renderResponse.setContentType("text/html");String res = renderRequest.getParameter("result");if(res != null){renderRequest.setAttribute("result", res);System.out.println("成功");include("/result.jsp", renderRequest, renderResponse);//getPortletContext().getRequestDispatcher("/result.jsp").forward(renderRequest, renderResponse);}elseinclude("/view.jsp", renderRequest, renderResponse);//super.doView(renderRequest, renderResponse);}
3 顯示訊息
在Java類中可以這麼用
SessionMessages.add(actionRequest, "request_processed", "this-is-my-custom-success-message")
SessionErrors.add(actionRequest, "error-key");
可以在設定檔中取消顯示所有訊息:
<init-param><name>add-process-action-success-action</name><value>false</value></init-param>
and in the jsp of your portlet:
<liferay-ui:error key="error-key" message="this-is-error-message-1" /><liferay-ui:error key="error-key-2" message="this-is-error-message-2" />
4、多語言支援
welcome 就是key了,語言properties中。
1)jsp : <ui:message key="welcome"></ui:message>
<%=LanguageUtil.get(locale, "welcome") %>
2)Java類中
或 LanguageUtil.get(renderRequest.getLocale(), "welcome ");