记忆以前状态的Wicket窗体组件

记忆以前状态的Wicket窗体组件,wicket,Wicket,我有一个OnChangeAjaxBehavior的下拉选项。在OnChangeAjaxBehavior中,我有一个条件行为——如果用户选择了与上次相同的值,那么该行为不应该做任何事情。如何优雅地保存上一个值?我试过了 @Override protected void onModelChanging() { this.previousValue = carDataModel.getObject().getModel(); log.debug("Saving previous val

我有一个OnChangeAjaxBehavior的下拉选项。在OnChangeAjaxBehavior中,我有一个条件行为——如果用户选择了与上次相同的值,那么该行为不应该做任何事情。如何优雅地保存上一个值?我试过了

@Override
protected void onModelChanging() {
    this.previousValue = carDataModel.getObject().getModel();
    log.debug("Saving previous value from model: {}", previousValue);
}
但是,如果所选值与前一个值相同,则不会调用方法
onModelChanging()
方法,因此前一个值并不总是正确更新


在模型更新之前,Wicket组件生命周期中还有其他方法可以调用吗?

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

我要做的是在页面初始构造期间存储previousValue,并使用它填充下拉列表的模型,然后使用AjaxFormComponentUpdateingBehavior在比较完成后更新previousValue。我要做的是在页面初始构造期间存储previousValue并使用它填充下拉列表的模型,然后在比较完成后使用AjaxFormComponentUpdateingBehavior更新previousValue。