<%
if(my_value==true){
//redirect to page second.jsp
}
%>
これはどうですか?この質問で私を助けてください
jsp内のリダイレクトは、実際には便利なアイデアではありません。これは、jspが以下のレンダリングフェーズを解析し、このフェーズがコンテンツを表示するように設計されているためです。
一方、以下のアクションフェーズへのリダイレクトでは、ここで、ポートレットが次に何を実行するかを決定できます。
ポートレットの2フェーズをよりよく理解するには、このチュートリアルをお読みください: http ://www.liferay.com/documentation/liferay-portal/6.0/development/-/ai/understanding-the-two-phases-of-portlet-execution
したがって、リダイレクトをポートレットprocessActionメソッドに入れます。
@Override
public void processAction(ActionRequest actionRequest, ActionResponse actionResponse) throws IOException, PortletException {
//defaultLandingPage = ...
actionResponse.sendRedirect(defaultLandingPage);
};
それ以外の場合、本当にjsp内でこれを実行したい場合は、最初のjspに2番目の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( "");
パスは、相対、絶対、またはサーバールートからの相対パスである可能性があることに注意してください。また、応答がすでにコミットされている場合は機能しません。