2

Struts 2.3 フレームワークを使用してリソース バンドルを処理するには、いくつかの方法があります。これには、View クラスまたはgetText()Action クラスのメソッドで特定の UI タグを使用することが含まれます。

ただし、Java クラスまたは View と Action 以外の他のクラスで、このリソース バンドルにアクセスする簡単なメカニズムはありません。

Java クラスでアクセスする 2 つの方法を見つけましたが、古いMessageResourcesStruts 1.2 フレームワークを完全に置き換えることはできません。

以下は、それぞれの欠点を持つ2つの方法です

  1. パッケージ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.

  2. DefaultTextProviderStruts 2.3 フレームワークの使用。

    DefaultTextProvider dtp = new DefaultTextProvider();
    return dtp.getText(key, (String[])params);
    

このアプローチでは、メッセージ テキストで置き換えられる引数の配列を渡す方法は提供されますが、ロケールを指定したり、検索するバンドルを指定したりするメカニズムは提供されません。MessageResourcesクラス。

最適なアプローチを探しています。これに関するヘルプは素晴らしいでしょう。

4

1 に答える 1

2

次の場所にあるメソッドを使用できます。

com.opensymphony.xwork2.util.LocalizedTextUtil
于 2013-05-28T06:42:47.140 に答える