0

私のアプリケーションでは、約 20 ページあります。各ページには、言語ごとに約 4 つのプロパティ ファイルがあります。すべてのプロパティは * と同じディレクトリにある必要があります。ジャバファイル。で変更するオプションはありますか? 新しいディレクトリ プロパティを作成し、ここにすべてのプロパティ ファイルを追加します。または、すべてのローカライズされたメッセージを 1 つのファイルに追加するオプションはありますか? 問題は、ページ a.hmtl のプロパティ "name" に値 "a" があり、別のページ b.html に同じキーの別の値: "name" 値 "b" があることです。

追加してみます

        this.getResourceSettings().addResourceFolder("/properties");

しかし、成功しませんでした

4

3 に答える 3

3

wicket-libraryの例を見てください。これをアーカイブするには、いくつかの方法があります。きっとあなたのニーズに合った1台が見つかります。

短いバージョン: 最大限の制御を行うには、独自の IResourceStreamLocator と独自の IResourceStream を記述それらを Application.init() で使用するように wicket を設定する必要があります。

于 2013-06-06T13:06:34.713 に答える
1

もっと簡単な解決策が見つかりませんでした。プロパティへのパスを変更する独自のクラスを作成します。

package org.toursys.web.finder;

import org.apache.wicket.util.resource.IResourceStream;
import org.apache.wicket.util.resource.locator.ResourceStreamLocator;

public class CustomResourceStreamLocator extends ResourceStreamLocator {

    @Override
    protected IResourceStream locateByClassLoader(Class<?> clazz, final String path) {
        String newPath = path;
        if (newPath.endsWith(".properties")) {
            newPath = path.substring(0, path.lastIndexOf("/")) + "/properties" + path.substring(path.lastIndexOf("/"));
        }
        IResourceStream stream = super.locateByClassLoader(clazz, newPath);
        if (stream == null) {
            stream = super.locateByClassLoader(clazz, path);
        }
        return stream;
    }

}

次に、このストリームロケーターをアプリに追加します

于 2013-06-18T08:59:13.803 に答える