加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – Wicket DropDownChoice无法正常使用PropertyModels

发布时间:2020-12-15 04:15:52 所属栏目:Java 来源:网络整理
导读:我一直试图调试为什么我的DropDownChoice只是一个简单的形式,只有DropDown和一个提交按钮现在几个小时都没有正常工作. 它有一种非常奇怪的行为.在下拉选项中选择的第一个值成功发送到服务器的位置,之后模型不会更新任何其他选择选择.即如果我有一个列表人员,
我一直试图调试为什么我的DropDownChoice只是一个简单的形式,只有DropDown和一个提交按钮现在几个小时都没有正常工作.

它有一种非常奇怪的行为.在下拉选项中选择的第一个值成功发送到服务器的位置,之后模型不会更新任何其他选择选择.即如果我有一个列表人员,并且我选择了第二个人,则它会成功提交.但是,在选择其他人并尝试再次提交时,它会一直显示第一个选定的选项.

这里的代码片段:

ChoiceRenderer<Empowerment> empowermentChoiceRenderer = new ChoiceRenderer<>("name","id");
 final DropDownChoice<Empowerment> empowermentDropDownChoice =
                    new DropDownChoice<>("empowerment",new PropertyModel<Empowerment>(this,"empowerment"),empowermentList,empowermentChoiceRenderer);
 empowermentDropDownChoice.setRequired(true);
 add(empowermentDropDownChoice);

只有这样我才能获得一个体面的行为才是我将empowerment变量设置为null.在这种情况下,在提交时,授权重新初始化为null,然后新的提交正常工作.

授权只是一个JPA实体.

我很高兴知道这是否是一个已知问题.我在wicket 6.9.1和wicket 6.12中体验过它

解决方法

最后,找到了问题的解决方案.上面的代码是正确的,但问题在于实体类本身 – Empowerment需要正确实现Equals和Hashcode.

DropDownChoice在此之后工作得很好.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读