Jsf Messagebundle显示键而不是值
出于测试/调试目的,我想显示消息包中的键,而不是jsf应用程序中的值。可能吗 例如: My messages_en.properties包含以下条目:Jsf Messagebundle显示键而不是值,jsf,message-bundle,Jsf,Message Bundle,出于测试/调试目的,我想显示消息包中的键,而不是jsf应用程序中的值。可能吗 例如: My messages_en.properties包含以下条目: global_today=today 示例jsf页面 <h:outputLabel id="myId" value="{Msgs['global_today']}"/> 现在我想看到页面中的键,“今天全局”而不是今天。最简单的方法是重命名属性文件,这样JSF就不会找到任何键,而您将看到的是“今天全局” 如果您今天仍
global_today=today
示例jsf页面
<h:outputLabel id="myId" value="{Msgs['global_today']}"/>
现在我想看到页面中的键,“今天全局”而不是今天。最简单的方法是重命名属性文件,这样JSF就不会找到任何键,而您将看到的是“今天全局” 如果您今天仍想查看
全局\u
,可以执行以下操作:
假设您的faces-config.xml中有以下内容
<resource-bundle>
<base-name>my.package.resources.MyText</base-name>
</resource-bundle>
这个页面()已经向我指出了这个方向,而且这个方向是有效的
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 "";
}
}*/
}
}