版本更新后删除了 Wicket DropDownChoice onSelectionChanged 方法

Wicket DropDownChoice onSelectionChanged method removed after version update

我被指定为开发人员,负责将我们的旧 wicket 应用程序从 6.x 升级到 8.x。我正在一个一个地解决多个错误,但是(因为我从未使用过 wicket)一个我无法继续处理。

在版本 6.x 中,它有 DropDownChoice 和覆盖的 onSelectionChanged,它在版本 8.x 中不再存在,我无法找到任何关于弃用的信息(通过 7.x 版本.. .) 所以他们似乎只是删除了它.. 我在这里有什么选择?上述代码:

booleanType = new DropDownChoice<BooleanType>("booleanType", new PropertyModel<>(this, "selectedBooleanType"), booleanTypes) {
            

            @Override
            protected void onSelectionChanged(BooleanType newSelection) {
                super.onSelectionChanged(newSelection);
                selectedBooleanType = newSelection;
            }
        };

编辑: 我后来才发现的类似问题 Wicket 6 to 8 upgrade: RadioGroup.onSelectionChanged() replacement

对于那些想知道如何更新值的人,因为它不再作为方法的参数出现:

                selectedType = (YourChoiceType) super.getFormComponent().getDefaultModelObject();

wantOnSelectionChangedNotifications 移至 FormComponentUpdatingBehavior。来自 changelog:

// Wicket 7.x
new CheckBox("id", model) {
    protected boolean wantOnSelectionChangedNotifications() {
        return true;
        }
 
    protected void onSelectionChanged(Boolean newSelection) {
        // do something, page will be rerendered;
    }
};
 
 
// Wicket 8.x
new CheckBox("id", model)
.add(new FormComponentUpdatingBehavior() {
    protected void onUpdate() {
        // do something, page will be rerendered;
    }
 
    protected void onError(RuntimeException ex) {
        super.onError(ex);
    }
});

(示例使用 CheckBox 但它也适用于 DropDownChoice)。

另一个例子见wiki