使用枚举作为Wicket中的模型对象

时间:2011-05-10 08:18:00

标签: java enums wicket

要在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上的模型。

2 个答案:

答案 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

这解决了问题中我的代码的模型更新问题。