我有一个数据表,它提供列表中的对象。在此数据表中,我想使用像p:columns(primefaces)
这样的标记,它提供表示字段名称的列表中的字符串。
我现在需要一个子表达式才能使用动态字段名称,如:
#{entry.#[column.fieldName}}
有可能在JSF2中执行此操作吗?
答案 0 :(得分:2)
如果条目具有列值的get / set访问器,则可以使用以下语法:
#{entry[column.fieldName]}
在EL中,您可以使用两种语法来访问对象的“lastname”属性的值:
#{myObject.lastname}
#{myObject["lastname"]}
答案 1 :(得分:-1)
不,EL不能那样工作。
您可以采取以下措施来实现所需的功能:
#{entry.getField(column.fieldName)}
其中getField()
是一种使用反射(可能通过PropertyDescriptor
)访问具有给定名称的字段的方法。但是,这是一个EL 2.2功能,因此您需要一个非常新的EL实现,例如Tomcat 7提供的。