2016-06-11 12 views
1

私はStruts 2に新しく、Struts 1のコードをStruts 2に移行しようとしています。ここではAction Servletが拡張され、拡張クラスの "process"メソッドではロケールが要求通りに設定されています以下、Struts2のRequestprocessor.processLocaleメソッドに相当するものは何ですか?

public class TestServlet extends ActionServlet { 

    protected void process(HttpServletRequest request, HttpServletResponse response) 
        throws IOException, ServletException { 
      Locale locale = Locale.ENGLISH; 
     locale = Locale.FRENCH; 
     request.setAttribute("_locales", locale); 

     super.process(request, response); 

    } 

}

にはどうすればいいの支柱2のStruts 2で、このための同等のアプローチは何で動作するように、この変更を移行することができますか?

答えて

1

Struts2では、actionservletやrequestprocessorは必要なくなり、すべてがi18nインターセプタ経由で実行されます。

希望であれば、thisの回答でお答えします。

Struts2の国際化インターセプターの国際化は、動的にユーザーのセッションのためにユーザー固有のロケール に現在のユーザーロケールを変更 に使用することができます。

「あるいは、のみ(xworkの2.1.3以降)現在の要求の」HTTP要求を行うなどロケールの値とリクエストパラメータ request_localeを供給することにより

"英語のためのロケールを作成する "en_US"。

このロケールは、セッションでデフォルトで 「WW_TRANS_I18N_LOCALE」属性の下に保存され、ユーザセッションの 中に現在のロケールとして使用されます。現在のロケールは、リクエストごとにこのインターセプタによって、 ActionContextマップにプッシュされます。これにより、ローカライゼーションをサポートする フレームワークコンポーネントはすべて、 ActionContextのロケールを利用できます。また


あなたはGet user locale detected by i18n interceptor in action classのために私の答えをお読みください現在のロケールを取得する方法を知りたい場合。

+0

struts.xmlファイルにi18nインターセプタを設定する必要がありますか?すべてのアクションに対して自動的に有効になっていますか?どのようにロケール "en"と "fr"だけをセッションに設定するのでしょうか? – CMG

+0

別の質問がありますか?新しい質問として投稿することができます。コメントセクションは、現在の質問または回答を明確にするためのセクションです。あなたは十分な評判を持っています。質問や答えにコメントを投稿できます。あなたの問題を解決するのに役立ちましたか、それを読んで習得したら、答えを受け入れることを忘れないでください。 –

+0

この回答が役に立ったとしたら、ここではあまり賞賛を受けていないので、躊躇しないでください。 –

関連する問題