带有setNullValid问题的下拉选项

时间:2019-02-14 14:14:17

标签: java wicket

我试图用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);

1 个答案:

答案 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()的用法。甚至更好地调试器,看看会发生什么!