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