Struts 2.3 フレームワークを使用してリソース バンドルを処理するには、いくつかの方法があります。これには、View クラスまたはgetText()
Action クラスのメソッドで特定の UI タグを使用することが含まれます。
ただし、Java クラスまたは View と Action 以外の他のクラスで、このリソース バンドルにアクセスする簡単なメカニズムはありません。
Java クラスでアクセスする 2 つの方法を見つけましたが、古いMessageResources
Struts 1.2 フレームワークを完全に置き換えることはできません。
以下は、それぞれの欠点を持つ2つの方法です
パッケージ
ResourceBundle
のクラスを使用します。java.util
Locale locale = (Locale)request.getSession().getAttribute(ConstantsFnl.LOCALE_KEY); ResourceBundle rb = ResourceBundle.getBundle(bundle,locale); message = rb.getString(key);
このアプローチの欠点は、メッセージ テキストで置き換えることができる引数の配列を渡すことができないことです。この機能は、Struts 1.2 に
MessageReosurces
.DefaultTextProvider
Struts 2.3 フレームワークの使用。DefaultTextProvider dtp = new DefaultTextProvider(); return dtp.getText(key, (String[])params);
このアプローチでは、メッセージ テキストで置き換えられる引数の配列を渡す方法は提供されますが、ロケールを指定したり、検索するバンドルを指定したりするメカニズムは提供されません。MessageResources
クラス。
最適なアプローチを探しています。これに関するヘルプは素晴らしいでしょう。