- 2008年12月20日 07:33
- しらべる
SEOとか絡んだりすると、GETでパラメータを渡したりすることがあって、そのときにqueryStringをそのまま使用したいときがあります。そんなときのメモ。
SAStrutsでは、RoutingFilterによって、リクエストパラメータがActionのプロパティにセットされたあと、HttpServletRequestからはqueryStringは見えなくなってしまうようです。
その場合、requestScopeというMapオブジェクトからqueryStringを参照することで解決できました。
Actionクラスのプロパティとして、requestScopeをインジェクションさせます。
//こうするだけで、勝手にセットされます。 public Map requestScope;
queryStringを取り出すには以下のようにします。
query = (String)requestScope.get("javax.servlet.forward.query_string");
たとえば、http://example.com/sample?bar=foo&hoge=moge
というURLでは、bar=foo&hoge=moge という文字列が取得できます。
以上です。
