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");也可加一些其他参数
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); }else include("/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 ");