2012-04-23 8 views
5

Struts2アクションは通常、TextProviderインターフェイスを実装するActionSupportクラスを拡張し、getText()メソッドを使用して便利な方法でリソースバンドルファイルへのアクセスを提供します。Struts2インターセプタでリソースバンドルを使用

インターセプタでリソースバンドルを使用します。私はTextProviderの実装をコピーしてそれを私のインターセプタに貼り付けなければならないと思います。

私はすでにstruts.xml

<constant name="struts.custom.i18n.resources" value="resources.global" /> 

でグローバルリコースファイルを定義し、resourcesパッケージにglobal.propertiesを配置しています。

それはアクションクラス

で正常に動作インターセプタでリソースバンドルを使用するには、いずれかの簡単な方法はありますか?

+0

とあなたがそれをやりたい理由インターセプタは、アクションのための具体的なものではなく、彼らはスレッドセーフではありません。私はこれを行う理由を見ません。 –

+0

@UmeshAwasthiインターセプタはスレッドセーフではありません。私はそれを知らなかった。これは本当に驚きです。ありがとう –

+1

@Umesh Awasthiあなたがi18nエラーメッセージをユーザに表示したいのであれば、ログイン傍受者があなたがもうログインしていないことがわかると、そのメッセージが表示されますか? – user1884155

答えて

4

java.util.ResourceBundleクラスを使用できます。

ResourceBundle bundle = ResourceBundle.getBundle("my_resource_name", locale); 
bundle.getString("resource_key"); 
+0

私は同様の要件があります。私はメッセージテキストで置き換えることができる引数の配列を渡すことができる方法を探しています.Struts(xwork)フレームワークの 'DefaultTextProvider'クラスのメソッドに似ています。 – shabeena

4

あなたの行動は、あなたのように行うことができますActionSupportのタイプである場合:?

ActionSupport actionSupport = (ActionSupport)invocation.getAction(); 
actionSupport.getText("sample.key"); 
+1

これはそれです。それから、POJOからは次のようになります: 'ActionSupport actionSupport =(ActionSupport)ActionContext.getContext()。getActionInvocation()。getAction();' –

関連する問題