1
<%
if(my_value==true){
//redirect to page second.jsp
}
%>

这是怎么做的?请帮我解决这个问题

4

3 回答 3

5

jsp内部的重定向并不是真正的权宜之计,因为jsp解析下面是渲染阶段,这个阶段的概念是显示内容。

另一方面重定向到动作阶段,在这里您可以决定portlet 下一步应该做什么。

阅读本教程以更好地理解 portlet 的两个阶段: http ://www.liferay.com/documentation/liferay-portal/6.0/development/-/ai/understanding-the-two-phases-of-portlet-execution

因此,将重定向放在 portlet processAction 方法中:

@Override
public void processAction(ActionRequest actionRequest, ActionResponse actionResponse) throws IOException, PortletException {
    //defaultLandingPage = ...
    actionResponse.sendRedirect(defaultLandingPage);
};

否则,如果您真的想在 jsp 内部执行此操作,您可以在第一个 jsp 中包含第二个 jsp:

<liferay-util:include page="second.jsp" />
于 2012-05-12T19:34:09.893 回答
3
 <portlet:renderURL var="other">
  <portlet:param name="jspPage" value="/jsp/b.jsp"/>
  </portlet:renderURL>
  <a href="<%=other%>">other</a>
于 2013-05-08T04:28:34.323 回答
0

response.sendRedirect("");

请注意,路径可以是相对的、绝对的或相对于服务器根目录的路径。此外,如果响应已经提交,它将不起作用。

于 2012-05-12T17:51:06.323 回答