如何使用动态创建的密钥访问ResourceBundle条目?

时间:2017-04-09 12:44:19

标签: jsf-2 internationalization el facelets resourcebundle

在我的ResourceBundle中,我有以下条目:

datasourcegroup.KUNDEN=Kunden
datasourcegroup.INKASSO=Inkasso
datasourcegroup.INTERESSENTEN=Interessenten
datasourcegroup.WARN=Warnadressen

键名的大写部分实际上是相关枚举类型的值:

public enum DatasourceGroup {
    KUNDEN,
    INKASSO,
    INTERESSENTEN,
    WARN;
}

现在在我的Facelets页面中,我想访问这些条目,如果我使用静态键名,这不是问题,如下所示:

<h:outputText value="#{msg['datasourcegroup.KUNDEN']}" />

但我真正想做的是从变量中获取keyname的大写部分,所以“语义上”它将是这样的:

<h:outputText value="#{msg['datasourcegroup.#{sessionBean.datasourceGroup}']}" />

但是我知道这是不可能的,因为EL表达式不能嵌套。

我有什么建议可以接近这个吗?

提前致谢!

问候 马里奥

编辑这是我采用的解决方案:

public String getDatasourceGroupLabel(DatasourceGroup group) {
    return "datasourcegroup."+group.toString();
}


<h:outputText value="#{msg[sessionBean.getDatasourceGroupLabel(group)]}" />

0 个答案:

没有答案