Spring MVC 和表单绑定:如果所有字段都为空,如何告诉 Spring 不要实例化子对象?

2024-01-10

我很难理解如果相应表单没有修改表单 bean 的任何字段,如何阻止 Spring 初始化该表单 bean 的子成员对象。例如,我有一个包含字段“地址”的用户对象,我将空的“用户”实例传递给表单(当时“地址”为空)。 在表单中,我有所有用户的输入字段以及地址字段:

<form action="#" th:action="@{/user/add}" th:object="${user}" method="post">
...
<input type="text" th:field="*{address.street}"/>
<input type="text" th:field="*{firstName}"/>
...

当我在相应的控制器方法中设置断点时,Address 对象存在于 User 对象中,并且其所有字段均为 null、0、false(默认值)。我知道初始化发生在 WebDataBinder 中。我怎样才能指示它不要这样做? 动态列表也会发生同样的情况,如果我有列表,那么列表将在表单提交后获得一个新条目。 非常感谢任何帮助


您需要实例化该对象,否则无法将表单中输入的值存储在任何地方。

如果您不想将空对象保存到数据库,那么您可能需要在保存之前检查修改情况。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Spring MVC 和表单绑定:如果所有字段都为空,如何告诉 Spring 不要实例化子对象? 的相关文章

随机推荐