5
在我的实体:类没有财产
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(unique=true, nullable=false)
private int tId;
....
public int getTId() {
return this.tId;
}
public void setTId(int tId) {
this.tId = tId;
}
和代码在我的JSF页面:
<ui:repeat value="#{techCat.techsOfCat}" var="post">
<h:outputText value="#{post.getTId()}"/>
...
</ui:repeat>
结果是好的。但是,如果我的代码:
<ui:repeat value="#{techCat.techsOfCat}" var="post">
<h:outputText value="#{post.tId}"/>
...
</ui:repeat>
我遇到了一个错误:
value="#{post.tId}": The class 'model.Technology' does not have the property 'tId'.
我真的不明白,错误。你能向我解释一下吗?谢谢
-1表示getter/setter是错误的(相反,它是EL中的属性名称是错误的),+1用于指出实际上正确答案/技术解释的链接。 – BalusC
他将自己的财产定义为'private int tId',所以我想如果他想要与此相对应的东西,他应该使用我的答案中定义的getter和setter?您当然也可以在EL中更改属性名称。或者我错过了什么? – bjedrzejewski
EL属性不对应于私有bean属性。它们对应于公共bean getter/setter。根据Javabeans规范(我没有对它进行测试,但是如果它在某些EL impls /版本和/或bean内省API中仍然导致'PropertyNotFoundException'),我不会感到惊讶。 OP的原始getter/setter语法是有效的,它只是基于getter/setter语法而错误的EL属性名称。 – BalusC