【问题标题】:Select a variable from a message bundle depending on another variable根据另一个变量从消息包中选择一个变量
【发布时间】:2012-07-27 17:18:31
【问题描述】:

在我的课堂上,我有一个函数:

public List<String> getDeclaredFields() {
  List<String> fieldList = new ArrayList<String>();

  for(Field field : Equipment.class.getDeclaredFields()){
    if(!field.getName().contains("_") && !field.getName().equals("id") && !field.getName().equals("serialVersionUID") ) {
      fieldList.add(field.getName());
    }
  }
  Collections.sort(fieldList); 
  return fieldList;
}   

返回类中所有声明字段的字符串列表。

在我的 facelet 文件中,我想执行以下操作:

<c:forEach var="field" items="#{bean.entity.declaredFields}">
  <h:outputText value="#{msg.#{field}}" />
</c:forEach>

但是,这会导致错误。

javax.el.E​​LException:错误解析:#{msg.#{field}}

我想这样做,因为当我对班级中的字段进行一些更改时,我只需在消息包中添加一个与字段同名的变量。这样,我在修改字段时不必更新我所有的 facelet 文件。只需在消息包文件中删除或添加新变量即可。

你有什么想法吗?

最好的问候

【问题讨论】:

    标签: jsp jsf el


    【解决方案1】:

    您应该能够使用 [] 表示法来引用它:

    #{msg[ field ]}
    

    试试看

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-07-31
      • 2021-10-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-15
      相关资源
      最近更新 更多