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

Jsf 2 如何使用动态创建的密钥访问ResourceBundle条目?,jsf-2,internationalization,el,facelets,resourcebundle,Jsf 2,Internationalization,El,Facelets,Resourcebundle,在我的ResourceBundle中,我有如下条目: datasourcegroup.KUNDEN=Kunden datasourcegroup.INKASSO=Inkasso datasourcegroup.INTERESSENTEN=Interessenten datasourcegroup.WARN=Warnadressen 键名的大写部分实际上是相关枚举类型的值: public enum DatasourceGroup { KUNDEN, INKASSO, IN

在我的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)]}" />
公共字符串getDatasourceGroupLabel(DatasourceGroup组){
返回“datasourcegroup.+group.toString();
}

不能嵌套EL,但可以通过javamethod或via连接字符串。只要确保正确地完成了测试。因此,类似于
{msg[''''datasource.'.concat(sessionBean.datasourceGroup).concat(''''''''''''')}
{msg[sessionBean.concatatedatasourcegroup]}
,后者返回
'datasourceGroup.KUNDEN'
(两个代码段均未经测试)将有效,谢谢!我用了第二种方法。第一个对我不起作用,我也不知道如何修复它。这句话让我头晕目眩:-)。。。