我需要一些占位符,可以在我的资源包中自动填充。
我的应用程序的用户有两种可能的配置,例如"1"和"2"。根据此配置,应返回具有正确值的条目。
我知道,条件是可能的:
currentConfig=The configuration is currently the {0,choice,0#first|1#second}
在我的脸上配置中.xml资源包被配置为在 JSF 中访问。
现在,我想在不指定参数的情况下在 JSF 中获取此值:
<h:outputText value="#{res.currentConfig}"/>
如果用户配置了"1",则应返回第一个值,否则返回第二个值。
with configuration "1": The configuration is currently the first.
with configuration "2": The configuration is currently the second.
这可以独立于JSF页面实现吗?
您可以按照自己的方式实现从资源包中获取文本。例如,您可以在某个托管Bean中创建这样的方法:
public String getCongiurationText() {
FacesContext context = FacesContext.getCurrentInstance();
Locale locale = context.getViewRoot().getLocale();
ResourceBundle bundle = ResourceBundle.getBundle("messages", locale);
String msg = bundle.getString("currentConfig");
Integer value = 1;
return MessageFormat.format(msg, getConfiguration());
}
然后在您的输出文本中:
<h:outputText value="#{someUtilBean.getCongiurationText()}" />
使用这种方法,您可以获得独立于 JSF 页面的消息。因此,在每个页面中,您指定相同的方法,但根据配置,它会显示不同的文本。当然可以通过不同的方式获得配置,但这取决于您希望如何处理它。