3

メソッドが次の命令でページをdoView呼び出すポートレットがあります。display.jsp

getPortletContext().getRequestDispatcher("/views/display.jsp").dispatcher.include(request, response);

display.jsp、外部 Web サイトへのリダイレクトを行いたい:

<%
response.sendRedirect("http://www.google.fr");
%>

まったく機能しないのはなぜですか?(私は<div>foobar<div>それが機能するかどうかを確認するために JSP に入れましたが、機能します) 外部 URL へのリダイレクトを行う別の解決策はありますか?

(アイデアは、ユーザーが「対象の」Web サイトを表示できるポートレット/ポータルに「とどまる」ことです)

よろしく。

4

1 に答える 1

1

ポートレット 2.0 仕様の 141 ページを見ると、HttpServletRespone#sendRedirect() はレンダリング フェーズで NO-OP であると記載されています。

それが、これが機能していない理由です。セマンティクスによると、応答オブジェクトは、この JSP が属するポートレットだけでなく、ページ全体の応答に対応する HttpServletResponse です。ページは複数のポートレットで構成され、各ポートレットには独自のライフサイクルがあるため、renderResponse または actionResponse オブジェクトのいずれかを使用し、サーブレット オブジェクトの使用を避ける必要があります。

ただし、元の問題の解決策はまだ見つかりません。

于 2014-02-16T05:33:07.763 に答える