最も簡単な方法は、プロパティ ファイルの名前を変更することです。この方法では、JSF はキーを見つけられず、'today' の代わりに ???global_today??? が表示されます。
それでも表示したい場合global_today
は、次の操作を実行できます。
faces-config.xml に以下があるとしましょう
<resource-bundle>
<base-name>my.package.resources.MyText</base-name>
</resource-bundle>
に名前MyText
を変更MyTextExtender
次に、パッケージに追加MyTextExtender.java
しますmy.package.resources
次の内容で:
public class MyTextExtender extends ResourceBundle {
public MyTextExtender() {
setParent(getBundle("my.package.resources.MyText", FacesContext.getCurrentInstance()
.getViewRoot().getLocale()));
}
@Override
public Enumeration<String> getKeys() {
return parent.getKeys();
}
@Override
protected Object handleGetObject(String key) {
return key;
//The code below will try to turn the annoying ???some_key???
//into "some key" (looks better)
/*try {
return parent.getObject(key);
} catch (MissingResourceException e) {
if (!StringUtils.isEmpty(key)) {
logger.error("Missing key: " + key + " in the properties", e);
return key.replace("_", " ");
} else {
logger.error("Key was null???", e);
return "";
}
}*/
}
}