2016-07-12 12 views
0

問題があり、バグか間違っているかどうかわかりません。Google Guice:サーブレットからサーブレットに転送するときにリクエストパラメータが失われる

私は2つのサーブレットを持っています。どちらも、私のGuiceServletContextListenerにServletModuleにマッピングされている:私のFooBarServletで

serve("/", "/index.jsp").with(MainEntryServlet.class); 
serve("/foobar.jsp").with(FooBarServlet.class); 

を私は次のようにします。予想通り

String url = "/index.jsp?target=foo.jsp"; 
request.getRequestDispatcher(url).forward(request, response); 

MainEntryServletが呼び出されますが、パラメータtargetはリクエストパラメータにありません。これは、あるサーブレットから別のサーブレットに転送する場合にのみ発生します。リクエストをJSPに転送すると、すべて正常に動作します。

サーブレットをServletModuleではなくweb.xmlにマップすると、targetパラメータが欠落していません。だから私はGuiceが問題を引き起こしていると思う。私はサーブレットコンテナとしてTomcat 8を使用しています。

これを修正する方法はありますか?

答えて

0

私はあなたの質問を得ていない可能性がありますが、これを試しましたか?

String url = "/index.jsp"; 
request.setAttribute("target", "foo.jsp") 
request.getRequestDispatcher(url).forward(request, response); 

あなたがsetAttributeメソッドを使用することができ、あなたの応答にパラメータを設定します。

+0

'target'をパラメータから属性に変更すると、多くのリファクタリングが発生します。私はそれをパラメータにしておきたいと思います。 – stebeg

関連する問題