<%
if(my_value==true){
//redirect to page second.jsp
}
%>
这是怎么回事?请帮助我解决这个问题
答案 0 :(得分: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" />
答案 1 :(得分:3)
<portlet:renderURL var="other">
<portlet:param name="jspPage" value="/jsp/b.jsp"/>
</portlet:renderURL>
<a href="<%=other%>">other</a>
答案 2 :(得分:0)
response.sendRedirect是( “”);
请注意,路径可以是服务器根目录的相对,绝对或相对路径。 此外,如果已经提交了响应,它将无法工作。