【问题标题】:Wicket DropDownChoice onSelectionChanged method removed after version update版本更新后删除了 Wicket DropDownChoice onSelectionChanged 方法
【发布时间】:2020-09-16 06:57:14
【问题描述】:

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

在 6.x 版本中,它具有覆盖 onSelectionChanged 的​​ DropDownChoice,它在 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();

【问题讨论】:

    标签: java wicket


    【解决方案1】:

    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

    【讨论】:

    • 我在问这个问题之前看过它然后继续......我不知道。必须更加专注。谢谢!不过有一件事 - 在删除它之前,在某些版本中是否有此方法的任何 @Deprecated 注释?只是想知道我是否应该只参考 wiki 或者我可以在进一步更新时直接在代码中找到一些提示。
    • 以防万一您没有看到它们:迁移页面非常完整。对于 6 -> 7:cwiki.apache.org/confluence/display/WICKET/… 和对于 7 -> 8:cwiki.apache.org/confluence/display/WICKET/… 我不知道是否有任何弃用注释。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多