在我的课堂上,我有一个函数:
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 文件。只需在消息包文件中删除或添加新变量即可。
你有什么想法吗?
最好的祝福