2012-03-06 13 views
-1

私はwicketフレームワークでdropdownchoiceの選択値を取得しようとしていますが、取得できません。 dropdownchoiceの変更イベントでDropDownChoiceの選択値を取得するにはどうすればよいですか?おかげさまで IWicketフレームワークDropDownChoice

+2

いくつかのコードを表示して、エラーを貼り付けてください。問題は何かを理解するのに役立ちません。 –

答えて

7

それは簡単です、あなたがしなければならないすべてはAjaxFormComponentUpdatingBehaviorを使用している:

DropDownChoice<String> ddc = new DropDownChoice<String>("ddc", model, Arrays.asList("a", "b", "c")); 
ddc.add(new AjaxFormComponentUpdatingBehavior("onchange") { 
    @Override 
    protected void onUpdate(AjaxRequestTarget target) { 
     System.out.println("selected: " + model.getObject()); 
    } 
}); 
+3

このajaxの動作がDropDownChoiceのModelObjectを更新し、その検証を実行することを考慮してください。検証が失敗すると、 'onUpdate'の代わりに' onError'が呼び出されます。これには欠点があることに注意してください。このコンポーネントを含む 'FormValidators'は自動的には実行されません。モデルオブジェクトを更新せずに入力を取得する場合は、['getUpdateModel()'](http://wicket.apache.org/apidocs/1.4/org/apache/wicket/ajax/form/AjaxFormComponentUpdatingBehavior)をオーバーライドします。 html#getUpdateModel())を返し、falseを返します。 –

+1

代わりにOnChangeAjaxBehaviorを使用するのはもっと慣れないでしょうか? – prasopes

2

PropertyModelは、このような問題のために良い選択です。 MyObjectはオブジェクトで、文字列はnameです。名前にはtoString()メソッドがオーバーライドされており、正常に動作しています。このメソッドを使用することをお勧めします。

+1

それは遅れているかもしれません.Nishantが彼の答えを見つけた神に感謝します。 –

+0

ありがとうございました。 – fledgling