在我的班上,我有一个功能根据:
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.ELException:错误解析:#{msg。#{field}}
我想这样做,因为当我在课堂上对字段进行一些更改时,我只需在我的消息包中添加一个与字段同名的变量。这样,我不必在修改字段时更新所有facelet文件。只需在消息包文件中删除或添加新变量即可。
你有什么想法吗?
祝你好运
答案 0 :(得分:2)
您应该能够使用[]表示法引用它:
#{msg[ field ]}
尝试一下