在我的JSF页面中,我有以下内容:
<h:outputText value="#{entity[column.key]}" />
我的enity bean(简单版):
public class Entity implements Serializable {
private int id;
private Entity entity;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public Entity getEntity() {
return this.entity;
}
public void setEntity(Entity entity) {
this.entity = entity;
}
}
当我的[column.key]变量保持为值'id'时,将显示实体的id属性。 当我的[column.key]变量保持为值'entity.id'时,我收到一个错误:
/WEB-INF/flows/parametersPage/parametersPage.xhtml @ 51,66 value =“#{entity [column.key]}”:在类型eu.acsone.agc.db上找不到属性'entity.id' .entity.Entity
当我调试时,我看到实体是在bean中设置的,所以它不是null。
我希望你们能帮忙,谢谢!
我正在使用: * Mojarra 2.1.7 * Primefaces 3.3.1
答案 0 :(得分:2)
它的原因是你没有属性(在java中实际上是非法的 - 不允许使用点分隔符)
private int entity.id; //its not even legal
在你的bean
中当您尝试像value="#{entity[variableThatHoldSomeString]}":
JSF将在您的bean中查找属性SomeString
...这就是您收到此错误的原因
试试这样的事情
value="#{entity.entity[column.key]}":
其中[column.key]
变量将包含值'id',
(b.t.w相同类型的嵌套属性对我来说很奇怪)