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 回答