所以我使用Apache Wicket,我有Model类,其属性为:
private String name;
private Set<Details> details;
其中Details类是
private String detailsName;
private DetailsEnum detailsEnum;
和DetailsEnum是枚举{SOME,MORE,MOST}。 我有一套细节问题。有ListView,但它适用于List,而不是Set。 我需要这样的表格:
名称:[ examplemodelname ]
detailsName :[此处带有此枚举的dropDownChoice]
detailsName :[此处带有此枚举的dropDownChoice]
detailsName :[此处带有此枚举的dropDownChoice]
但我不知道如何以正确的方式绑定Set。
答案 0 :(得分:0)
您想要创建3 dropDownChoice,但在您的模型中,您有一组详细信息。不能确定在集合中存在3个对象。
我会更改模型:
private String name;
private DetailsEnum detail1;
private DetailsEnum detail2;
private DetailsEnum detail3;
使用您模型的CompundPropertyModel进行表单:
form.add(new DropDownChoice<>("detail1"), Arrays.asList(DetailsEnum.SOME, DetailsEnum.MORE, DetailsEnum.MOST), new Arrays.asList(DetailsEnum.values()));
form.add(new DropDownChoice<>("detail2"), Arrays.asList(DetailsEnum.SOME, DetailsEnum.MORE, DetailsEnum.MOST), new Arrays.asList(DetailsEnum.values()));
form.add(new DropDownChoice<>("detail3"), Arrays.asList(DetailsEnum.SOME, DetailsEnum.MORE, DetailsEnum.MOST), new Arrays.asList(DetailsEnum.values()));
您还可以重写显示的值,new Arrays.asList(DetailsEnum.values())
写new EnumChoiceRenderer<DetailsEnum>(this)
除外,并在属性文件中定义类似的内容:
DetailsEnum.SOME=Some
DetailsEnum.MORE=More
DetailsEnum.MOST=Most