<%
if(my_value==true){
//redirect to page second.jsp
}
%>
这是怎么做的?请帮我解决这个问题
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" />
<portlet:renderURL var="other">
<portlet:param name="jspPage" value="/jsp/b.jsp"/>
</portlet:renderURL>
<a href="<%=other%>">other</a>
response.sendRedirect("");
请注意,路径可以是相对的、绝对的或相对于服务器根目录的路径。此外,如果响应已经提交,它将不起作用。