Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/344.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_Enums_Wicket - Fatal编程技术网

Java 在Wicket中将枚举用作模型对象

Java 在Wicket中将枚举用作模型对象,java,enums,wicket,Java,Enums,Wicket,要在PropertyModel中使用枚举类,可以编写: new PropertyModel(MyObject, "MyEnumClass"); 现在,只有在MyObject-类中定义了MyEnumClass时,这才有效 如何在模型中使用独立的枚举类 编辑:我具体化: RadioGroup<MyEnum> rg = new RadioGroup<MyEnum>("radioGroupID", new Model<MyEnum>(MyEnum.NORMAL));

要在PropertyModel中使用枚举类,可以编写:

new PropertyModel(MyObject, "MyEnumClass");
现在,只有在
MyObject
-类中定义了
MyEnumClass
时,这才有效

如何在模型中使用独立的枚举类

编辑:我具体化:

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 rg=new-RadioGroup(“RadioGroup id”,新模型(MyEnum.NORMAL));
添加(新收音机(“radioNormal”,新型号(MyEnum.NORMAL));
rg.add(新收音机(“radioSpecial”,新型号(MyEnum.SPECIAL));

这里的问题是,更改单选按钮不会更改
RadioGroup

上的模型。我一直在使用以下内容,但我的Enum“NMRType”下拉选择组件没有出现问题:

IModel<NMRType> default = Model.of(NMRType.HNMR);
List<NMRType> choices = Arrays.asList(NMRType.values());
DropDownChoice<NMRType> nmrDDC = 
    new DropDownChoice<NMRType>("nmrType", default, choices);
IModel default=Model.of(NMRType.HNMR);
列表选项=Arrays.asList(NMRType.values());
DropDownChoice nmrDDC=
新的下拉选项(“nmrType”,默认值,选项);

请注意:小心不要写入枚举模型。。Wicket使用反射,如果你这样做的话,这可能会带来一些惊喜。

我刚刚发现了问题:我在我的
RadioGroup上使用了
AjaxEventBehavior
,而不是
AjaxFormChoiceComponentUpdatingBehavior


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

谢谢,但如何使用单选按钮实现这一点?(请参阅我帖子中的编辑)@rotsch我不是100%确定,但请考虑使用而不是简单,因为您已经在使用RadioGroup..RadioChoice是不灵活的,但无论如何,谢谢,我发现了错误,请参阅topI刚刚发现的问题:我在我的
RadioGroup
上使用了
AjaxEventBehavior
,而不是
AjaxFormChoiceComponentUpdatingBehavior
。这修复了问题中我的代码的模型更新。很高兴听到你发现了错误。。从您的问题中不明显看出,您最初使用的是Ajax,但AFCCUB是Wicket中具有精选组件的需求。