これを数時間かけて遊んでいて、周りに頭を浮かべているように見えません。Wicket:ListChoiceのモデルをフォームのモデルに割り当てることを避ける
はWicketでは、リストの選択は、リストを作るの選択肢を表現するモデルのリストを取ります。 List Choiceが追加されたFormが送信されると、Wicketは選択した選択肢のモデルをフォームのモデルにバインドします。
しかし、モデル全体がバインドされず、代わりに特定のプロパティが必要な場合はどうなりますか?例えば
:
public class FormModel {
private int locationId;
public void setLocationId(int id) {
this.locationId = id;
}
}
public class LocationModel {
private int id;
public int getId() {
return this.id;
}
}
<select wicket:id="LocationId" id="LocationId" name="LocationId" size="1">
<option value="#">#</option>
</select>
フォームが送信されると、Wicketのは明らかに、私はちょうどそれががプロパティをlocationIdだバインドするFormModelに全体LocationModelをバインドしようとします。
は、私はすでにChoiceRendererを使用していますが、それは、それが送信されたときにフォームがないレンダリングされたときに動作するようです。
結果は、自動改札が整数にLocationModelを変換することはできないので、最終的なクラスキャスト例外です。
フォーム用に別のモデルを作成して、LocationModelを受け入れることは嫌です。
どのような考えですか?
私が正しく理解していることを確認するだけです。リストの選択肢に整数のリストを与え、IChoiceRendererの中に、表示されたときに各IDによって表される関連する位置を引っ張ると言っていますか? – 9ee1
確かに。説明を引き出すのが高価な場合は、私の編集を参照してください。 –
あなたの例はうまくいきました。素晴らしい詳細な答えをありがとう。 – 9ee1