java - 检查组模型中的 Wicket CheckGroup Ajax 口是心非

标签 java ajax wicket wicket-7

我有一个带有 CheckGroup 的简单面板(面板本身是更大表单的一部分)。检查组中的复选框是在 ListView 组件中生成的。我需要动态更改此面板,每次更改时我都需要检索所选项目。面板的代码基本上是这样的:

CheckGroup<MyObject> group = new CheckGroup<MyObject>(ID, selectedObjects);
ListView<MyObject> objectList = new ListView<MyObject>(ID, values) {

    @Override
        protected void populateItem(ListItem<MyObject> item) {
            Check<MyObject> check = new Check<MyObject>(TIME_CHECK, item.getModel());
            Label l = new Label(TIME_LABEL, item.getModel());

            item.add(check);
            item.add(l);
        }
}
group.add(objectList);
group.add(new AjaxFormChoiceComponentUpdatingBehavior() {

        @Override
        protected void onUpdate(AjaxRequestTarget target) {
            System.out.println("Selected objects: "+selectedObjects.size());
        }
    });
add(group);

现在的问题是,每当我单击该复选框时,两个相同的对象就会添加到 selectedObjects 列表中。如果我删除 AjaxFormChoiceComponentUpdatingBehavior,则不会将任何对象添加到列表中(这是有道理的,因为此时我没有提交表单)。

我不太确定如何解决这个问题,我想出的最佳解决方案是获取列表并仔细检查它,消除口是心非。

另外,很抱歉这个标题,但我不知道如何命名这个问题。

这里有一个小例子来澄清这个问题: 假设检查组正在显示这些对象:

object 1
object 2
object 3
object 4
object 5

然后,当我选择对象 1 时,检查组 (=selectedObjects) 的模型将如下所示:

object 1
object 1

最佳答案

这是 Wicket 口上的一个错误。我用的是7.1版本,然后改到7.10版本,问题就解决了!

关于java - 检查组模型中的 Wicket CheckGroup Ajax 口是心非,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37134566/

相关文章:

java - 如何在 wicket 应用程序中使用 tomcat 管理器中的 "Guessed User name"?

java - 对于现有 Wicket Web 应用程序来说,什么是好的工作流程解决方案?

java - 本地保存列表时 GluonClient 数据丢失

mysql - asp.net 可以做到这一点吗?

java - 从 Chrome 书签 html 文件中检索信息

javascript - jQuery:在提交表单之前执行一些操作

javascript - Ajax 功能不适用于移动浏览器

java - Wicket 6 DefaultNestedTree 未在文件夹单击时展开

java - 尝试播放音频,使我没有声音

java - Java 中的多线程音频