1

MVCPortlet クラスから JSP ページにリダイレクトしたい条件に応じて、 でaction-url-redirecttrue に設定した後liferay-portlet.xml、アクションで試しました

Response.sendRedirect()

サーバーコンソールに次のエラーが表示されました。

レンダリング パラメータの設定は既に呼び出されています

次に、使用してみました:

include("/html/satportlet/view2.jsp", request, response);

例外はスローされませんが、この場合はまだ何も起こっていません。その理由はわかりません。

もう 1 つの質問ですが、Liferay の include と sendRedirect の概念は JSP とサーブレットの概念と同じであると想定するのは正しいですか?

Liferay6を使用しています。

4

2 に答える 2

2

リダイレクトは必要ありません。アクション メソッドの最後に次を追加します。

response.setRenderParameter("jspPage", "/url/to/your/jsp");

"/url/to/your/jsp"これにより、アクションへの応答としてページがレンダリングされます。

実際、オーバーライドする必要があるdoViewのは、エントリポイント ビュー jsp が表示される前にカスタム処理が必要な場合だけです (JSP 自体にコードを記述しないようにするためです。Liferay にはjsp-page/のみがview-templateあり、コントローラー アクションはありません。 )。

于 2012-07-20T08:29:12.107 に答える
0

ポートレット API は、アクション フェーズとレンダリング フェーズを区別します。アクション フェーズ (たとえば、利用可能な ActionRequest/ActionResponse がある場合) では、HTML 出力について考える必要はありません。

レンダリング中に何を表示するかを決定します。そのため、アクション処理中に属性またはレンダリング パラメータを覚えておくだけです。レンダリング時に、ターゲット JSP にリダイレクト/インクルードします。

于 2012-04-15T10:46:25.500 に答える