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);
}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 ");