2008-09-15 2 views
2

Struts 1.3アプリケーション。メインのウェブサイトはstruts/Javaによって提供されていません。私は、strutsアクションの結果を、ウェブサイトのページ、つまりstrutsコンテキスト外に転送する必要があります。現在、コンテキストでJSPに転送し、メタリフレッシュを使用して実際の場所に転送します。それはちょっと不気味だね。より良い方法がありますか?Struts 1.3:アプリケーションコンテキスト外への転送?

答えて

4

厳密には「転送」できません。 Actionクラスのexecute()メソッドのHttpServletResponseオブジェクトでsendRedirect()を呼び出すだけです。そして、 'return null'を返します。

交互に、呼び出したActionForwardオブジェクトのsetModule(あなたが返却しようとしていること)、またはどちらかが絶対URI

+0

私の理解では、ホスト/ポートを含まない絶対URIは、常に、アプリケーションのコンテキストに関連していると考えられます。 setModule()は何をしますか?それは明らかに文書化されておらず、アプリのコンテキストに関連している "/何か"のように思えますか? – davetron5000

0

へのパスを設定し、私は()response.sendRedirectをやってしまいました。

0

これがまだWebアプリケーションにあった場合は、ServletContext.RequestDispatcherを使用できますか?これがStrutsのdoForward()メソッドの仕組みです。しかし、Struts/Javaの外に出るには、sendRedirect()が必要です。

RequestDispatcher rd = getServletContext().getRequestDispatcher(uri); 
rd.forward(request, response); 
+0

私はそれがあなたがwebappの文脈の外に出ることができるとは思わない。 – davetron5000

+0

あなたは正しい - 私は質問を誤解した。私は自分の答えを編集しますが、完全性のために残しておきます。 –

関連する問題