Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 多实体上的Wicket射线群_Java_Wicket - Fatal编程技术网

Java 多实体上的Wicket射线群

Java 多实体上的Wicket射线群,java,wicket,Java,Wicket,我发现维克特的团队完全令人困惑。我在中继器中得到了n个实体,我想在其中设置字段“booleanvalue”。这是我的代码: RadioGroup radioGroup = new RadioGroup<>("someGroup", new Model(entityXYZ)); radioValue = new Radio("radioValue", new PropertyModel(entityXYZ, "booleanValue"), radioGroup); repe

我发现维克特的团队完全令人困惑。我在中继器中得到了n个实体,我想在其中设置字段“booleanvalue”。这是我的代码:

RadioGroup radioGroup = new RadioGroup<>("someGroup", new Model(entityXYZ));
radioValue = new Radio("radioValue", 
    new PropertyModel(entityXYZ, "booleanValue"), radioGroup);
repeaterContainer.add(radioValue);
// add other stuff to repeater
RadioGroup-RadioGroup=new-RadioGroup(“someGroup”,新模型(entityXYZ));
radioValue=新收音机(“radioValue”,
新的PropertyModel(entityXYZ,“布尔值”)、radioGroup;
repeaterContainer.add(radioValue);
//向中继器添加其他内容
我发现的所有例子似乎都不适用。我不希望radioGroup中只有一个实体,但我希望只允许其中一个实体设置其字段。 我尝试了各种模型组合,但都不起作用


更新:这似乎是组件层次结构的问题。我无法将radioValues添加到同一层次结构中,因为在中继器中,可以添加自定义用户输入以及其他RADIOGROUP。此外,该组不是由单个对象组成,而是由多个对象组成,其中只有一个对象应设置布尔值。在HTML中这是没有问题的,但在Wicket中我看不到任何解决方法:(

要更新一组实体的属性吗

RadioGroup<Entity> group = new RadioGroup<Entity>("someGroup", new IModel<Entity>() {
  public void setObject(Entity entity) {
    for (Entity candidate : entities) {
      candidate.setBooleanValue(candidate == entity);
    }
  }
  public Entity getObject() {
    for (Entity candidate : entities) {
      if (candidate.getBooleanValue()) {
        return candidate;
      }
    }
    return null;
  }
});

group.add(new ListView("entities", entities) {
  protected void populateItem(final ListItem<Entity> item)
    item.add(new Radio("radio", item.getModel());
  }
});
RadioGroup group=new RadioGroup(“someGroup”,new IModel()){
公共void集合对象(实体){
针对(实体候选:实体){
candidate.setBooleanValue(candidate==实体);
}
}
公共实体getObject(){
针对(实体候选:实体){
if(candidate.getBooleanValue()){
返回候选人;
}
}
返回null;
}
});
添加(新列表视图(“实体”,实体){
受保护的无效填充项(最终列表项)
添加(新收音机(“收音机”,item.getModel());
}
});

射线组的工作原理基本上是将每个选择的无线电添加到射线组中。然后,当选择其中一个无线电时,该组的模型对象将从所选无线电更改为模型对象

另见

实质上:

RadioGroup<SomeEntity> group = new RadioGroup<SomeEntity>("somegroup", new Model<Entity>(null));

group.add(new Radio("choice1", new Model<SomeEntity>(someEntityA));
group.add(new Radio("choice2", new Model<SomeEntity>(someEntityB));

form.add(group);
SomeEntity selectedEntity = group.getModelObject();