我试图用DropDownChoice
创建一个setNullValid(true)
,我给模型一个Class A
,上面有一个Class B
,并给它一个类列表选择,如果A类已经具有B类,则所选的B类不会显示为在渲染中选择的。
如果A.b不为空,我希望已经被选中,但选项之一也为空。
谢谢您的时间
DropDownChoice<B> bChoices = new DropDownChoice<>(DROPDOWN, new PropertyModel<>(a, "b"),
listOfBs, new ChoiceRenderer<>("name"));
b.setNullValid(true);
答案 0 :(得分:1)
Wicket使用IChoiceRenderer#getIdValue()
查找选定的选项。如果您不提供自定义IChoiceRenderer
,则Wicket将使用ChoiceRenderer
,作为id
,它将使用选项List
中的项目索引。
在https://github.com/apache/wicket/blob/7bef3d67c8ccc269f02e8943bf9a22c3cd5438e9/wicket-core/src/main/java/org/apache/wicket/markup/html/form/AbstractSingleSelectChoice.java处查看#equals()
的用法。甚至更好地调试器,看看会发生什么!