要在PropertyModel中使用Enum类,您可以编写:
new PropertyModel(MyObject, "MyEnumClass");
现在只有在MyEnumClass
- 类中定义MyObject
时才能使用此功能。
如何在模型中使用独立的Enum类?
编辑:我具体化:
RadioGroup<MyEnum> rg = new RadioGroup<MyEnum>("radioGroupID", new Model<MyEnum>(MyEnum.NORMAL));
rg.add(new Radio<MyEnum>("radioNormal", new Model<MyEnum>(MyEnum.NORMAL)));
rg.add(new Radio<MyEnum>("radioSpecial", new Model<MyEnum>(MyEnum.SPECIAL)));
此处的问题是更改单选按钮不会更改RadioGroup
上的模型。
答案 0 :(得分:2)
对于我的Enum“NMRType”DropDownChoice组件,我一直在使用以下内容:
IModel<NMRType> default = Model.of(NMRType.HNMR);
List<NMRType> choices = Arrays.asList(NMRType.values());
DropDownChoice<NMRType> nmrDDC =
new DropDownChoice<NMRType>("nmrType", default, choices);
请注意:小心不要写入您的Enum模型.Wicket使用反射,如果你这样做可能会引起一些惊喜..
答案 1 :(得分:2)
我刚发现问题:我在AjaxEventBehavior
而不是RadioGroup
上使用AjaxFormChoiceComponentUpdatingBehavior
。
这解决了问题中我的代码的模型更新问题。