2013-08-05 7 views
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'. 

私は本当にそのエラーを理解していません。私に説明することはできますか?ありがとう

答えて

9

エラーは、あなたのプロパティに対して正しいgetterとsetterが見つかりませんでした。あなたのゲッターとセッターのための正しい構文は次のようになります。

public int gettId() { 
    return tId; 
} 

public void settId(int tId) { 
    this.tId = tId; 
} 

あなたは常にあなたのsure-ゲッターとセッターのためのコード生成を使用していない場合。

specific conventionに興味がある場合は、ゲッターとセッターはTIdではなくtIdになります。

+0

-1は、ゲッター/セッターが間違っている(代わりに、それは間違ったELのプロパティ名です)、実際に正しい答え/技術的説明とのリンクを指摘するため+1です。 – BalusC

+0

彼は彼の財産を「プライベートint tld」と定義しているので、私は彼がこれに対応する何かを望むなら、彼は私の答えに定義されているゲッターとセッターを使うべきだと思った?もちろん、ELのプロパティ名を変更することもできます。または私は何かを逃していますか? – bjedrzejewski

+0

ELプロパティはプライベートBeanのプロパティに対応していません。彼らは公共の豆のゲッター/セッターに対応しています。 Javabeansの仕様では、あなたの回答で提案されているgetter/setter構文は無効です(私はまだテストしていませんが、特定のEL impls/versionsやBeanイントロスペクションAPIで 'PropertyNotFoundException'を引き起こしても驚かないでしょう)。 OPの元のgetter/setter構文は有効でしたが、ELのプロパティ名はgetter/setterの構文に基づいて間違っています。 – BalusC

関連する問題