2

のファイル システムからプロパティ ファイルをロードするメカニズムはありますstruts2か? ホット展開メカニズムを考えています。war ファイルを更新すると、再デプロイされます。を使用して、その場でプロパティファイルをリロードできます

LocalizedTextUtil.clearDefaultResourceBundles();
LocalizedTextUtil.addDefaultResourceBundle("struts/resources");

struts2ただし、デフォルトの場所のみが表示されます。

解決策、ハック、回避策は大歓迎です。

4

2 に答える 2

2

解決策を見つけました

最初に struts.properties struts.custom.i18n.resources=globalMessages
で、次に、以下のコードを StartupServlet またはサーバーが起動する場所で実行される他の場所に追加します。

    URL[] urls;
    try {
        File file = new File("/your path");
        URL url = file.toURI().toURL();          
        urls = new URL[]{url};

        ClassLoader cl = new URLClassLoader(urls);
        LocalizedTextUtil.setDelegatedClassLoader(cl);
        LocalizedTextUtil.addDefaultResourceBundle("globalMessages");
    } catch (MalformedURLException e) {
        e.printStackTrace();
    }
于 2012-03-29T07:13:09.003 に答える
0

これは次の方法で実現できます。 1. Struts に特定のプロパティ バンドルを使用するように指示します。2. クラスパスに追加する

例:

Struts.properties:

....
struts.custom.i18n.resources=globalMessages
....

globalMessages.properties(および などのロケール固有のバンドル) を作成globalMessages_ru_RU.propertiesし、バンドルを というフォルダー/app_conf/i18nに配置し、最後にディレクトリ/app_conf/i18nをクラスパスに配置します。

于 2010-08-17T11:39:15.727 に答える