0

OnChangeAjaxBehaviorを使用したDropDownChoiceがあります。OnChangeAjaxBehaviorには、条件付きの動作があります。ユーザーが前回と同じ値を選択した場合、動作は何も実行しないはずです。以前の値をエレガントに保存するにはどうすればよいですか?私は試した

@Override
protected void onModelChanging() {
    this.previousValue = carDataModel.getObject().getModel();
    log.debug("Saving previous value from model: {}", previousValue);
}

ただし、選択した値が前の値と同じである場合、onModelChanging()メソッドメソッドは呼び出されないため、前の値が常に正しく更新されるとは限りません。

モデルが更新される前にWicketコンポーネントのライフサイクルで呼び出される別のメソッドはありますか?

4

1 に答える 1

3

#getUpdateModel()をオーバーライドしてfalseを返すことができるため、#onUpdate()では、コンポーネントに元のモデルオブジェクトが残っており、component#updateModel()を自分で呼び出す前にFormComponent#getConvertedInput()にアクセスできます。

于 2013-02-15T22:22:31.297 に答える