Wicket表单组件,记住以前的状态

时间:2013-02-15 15:47:48

标签: wicket

我有一个带OnChangeAjaxBehavior的DropDownChoice。在OnChangeAjaxBehavior中,我有一个条件行为 - 如果用户选择了与上次相同的值,则该行为不应该执行任何操作。我怎样才能优雅地保存以前的价值?我试过了

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

但如果所选值与前一个值相同,则方法onModelChanging()方法不会被称为,因此不会始终正确更新该值。

在我可以使用模型更新之前,是否有另一种在Wicket组件生命周期中调用的方法?

1 个答案:

答案 0 :(得分:3)

您可以覆盖#getUpdateModel()以返回false,因此在您的#onUpdate()中,组件仍然具有其原始模型对象,您可以在自己调用组件#updateModel()之前访问FormComponent#getConvertedInput()。 p>