私は既存のJava/JSF Webサイトを持っています。画面上のすべてのテキストは、<によってプロパティファイルから取得されています。f:loadBundle basename = "org.example.applicaltion" var = "applicaltion"/>はapplicaltion.propertiesからテキストをプルします。PropertyResourceBundleからリソースをオーバーライドする方法
これらの実行時設定可能なサブセットについては、他の場所から文字列を引き出したいと思っています(Webサービス経由のCMS)。 ResourceBundleクラスを見ると、親ResourceBundleへの委譲によって、これに近いもののためのインフラストラクチャを持つことができます。私はこれを試してみましたし、親がnullの場合、この
public class Applicaltion extends ResourceBundle{
@Override
protected Object handleGetObject(String key) {
if(overridenKey(key)){
return overridedValue(key);
}
return null; // ResourceBundle.getObject will delegate to parent
// if we return null
}
}
ようsomethisを望んでいます
、私はこれがデフォルトの場合のために、より使用されていると仮定し - >アン - >表すen_GB。
プロパティファイルにカスタムresourceBundleとは異なる名前を付け、次にCustomResourceBundle.handleGetObject内のResourceBundle.getBundle(PROPERTY_FILE_NAME).getString(key)の完全なスタックを委任するという魅力的でないオプションを検討しています)。
もっと良いアイデアを教えてください。
私はまだこれに対するより良い答えを探しています。私が行進の終わりまでにより良い応答を得なければ、自分の答えを受け入れます。 –