W moim podmiot:Klasa nie posiada własności
@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;
}
i kod w mojej strony JSF:
<ui:repeat value="#{techCat.techsOfCat}" var="post">
<h:outputText value="#{post.getTId()}"/>
...
</ui:repeat>
Wynik jest dobry. Ale gdybym kodu:
<ui:repeat value="#{techCat.techsOfCat}" var="post">
<h:outputText value="#{post.tId}"/>
...
</ui:repeat>
wychodził błąd:
value="#{post.tId}": The class 'model.Technology' does not have the property 'tId'.
ja naprawdę nie rozumieją, że błąd. Czy możesz mi wyjaśnić? Dzięki
-1 za powiedzenie, że getter/setter są złe (zamiast tego jest to nazwa właściwości w EL, która jest błędna), +1 za wskazanie linku z właściwie poprawną odpowiedzią/wyjaśnieniem technicznym. – BalusC
On definiuje swoją własność jako "private int td", więc pomyślałem, że jeśli chce czegoś, co mu odpowiada, to powinien używać getterów i seterów zdefiniowanych w mojej odpowiedzi? Możesz również oczywiście zmienić nazwę nieruchomości w EL. Czy może czegoś brakuje? – bjedrzejewski
Właściwości EL nie odpowiadają prywatnym właściwościom fasoli. Odpowiadają one getterowi/seterowi. W twojej odpowiedzi proponowana składnia getter/setter jest nieprawidłowa zgodnie ze specyfikacją Javabeans (nie testowałem jej, ale nie byłbym zaskoczony, gdyby nadal powodował 'PropertyNotFoundException' na niektórych EL impl/versions i/lub API introspekcji Bea). Oryginalna składnia gettera/ustawiającego OP była prawidłowa, jest to tylko nazwa właściwości EL, która jest błędna na podstawie składni getter/setter. – BalusC