我正在尝试创建一个表单来编辑现有的数据库行。我正在使用 Spring MVC 表单标签将 html 自动绑定到表单支持对象。该行与另一个表有多对多的关系,我试图用一个多选框表示,使用 form:select 标记;
<form:select path="rules">
<form:options items="${bundle.rules}" itemValue="name" itemLabel="name"/>
</form:select>
我使用 Hibernate 进行持久性,因此关系表示为 Bundle pojo 中的 HashSet。
private Set<Rule> rules = new HashSet<Rule>(0);
如果没有页面上的选择框,对象将正确更新到数据库,但是使用选择框,对象将不会更新到数据库,并且我在 log4j 日志中收到此错误,请注意此错误不会导致异常,仅在日志中可见;
DEBUG org.springframework.web.servlet.mvc.SimpleFormController.processFormSubmission(SimpleFormController.java:256) - Data binding errors: 1
无论我在选择框中取消选择项目,都会发生这种情况,整个表单拒绝正确提交。谁能帮我?
我知道How do I bind collection attributes to a form in Spring MVC,这与这个问题类似,不幸的是,这些建议对我的问题似乎都没有用。