2011-07-07 6 views
0

今、変数の設定に助けが必要です。 私はシーズンとトーナメントの2つのエンティティを持っています、トーナメントはシーズンに属します。 今シーズンを作成しましたが、今シーズンのリストが表示されます。私は1つのボタンのセッションスコープに実際のシーズンを保存する必要のある「選択」ここにありますので、エンティティに隠された変数を設定する

public String selectSezona(Sezona sezona){ 
     this.sezona = sezona; 
     return "index"; 
    } 

今私が選択した1シーズンと今私はこの季節でトーナメントを作成したいが、私はので、私はこれを書きたく選択シーズンいけません:

<h:inputHidden value="#{turnaje.turnaj.setSezona(sezony.sezona)}" /> 

がこの大会に実際のシーズンを割り当てる必要が隠され、入力されたテキストが、この文句を言わない仕事です:(エラーは以下のとおりです。。。javax.el.PropertyNotWritableException私はその名前を見るので、シーズンが設定されていることを確認する方法この問題の図解を教えてください? thx

編集:

私もトーナメント

@ManyToOne 
private Sezona sezona; 

public Sezona getSezona() { 
     return sezona; 
    } 

    public void setSezona(Sezona sezona) { 
     this.sezona = sezona; 
    } 

でゲッターとセッターを持っていますが、なぜ、私は、パラメータなしのメソッドsetSezonaを持っている必要がありますか?

答えて

2

あなたはselectSezona(...)メソッドを持っていますが、setSezona(...)ではありません。

実際、非表示フィールドにはメソッドではなく値としてプロパティが必要です。 setSezona(...)は何も返しませんが、JSFでは初期値を取得する方法が必要です。 したがって、式を#{turnaje.turnaj.sezona}に変更する必要があります。

JSFはStringSezonaの間で変換できないので、まだエラーが発生するため、隠しフィールドにもコンバーターを提供する必要があります。

+0

しかし、なぜパラメータを持たないsetSezonaメソッドが必要ですか? – hudi

+0

申し訳ありませんが、答えは誤解を招いていました。私はそれを更新します。 – Thomas

+0

hm私はこれを試していますが、これはまだ動作しませんでした。プログラムがトーナメントシーズンにどのように設定するのかを#{turnaje.turnaj.sezona} – hudi

関連する問題