Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java SpringMVC和表单绑定:如果子对象的所有字段都为空,如何告诉Spring不要实例化子对象?_Java_Spring_Forms_Spring Mvc_Thymeleaf - Fatal编程技术网

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

Java SpringMVC和表单绑定:如果子对象的所有字段都为空,如何告诉Spring不要实例化子对象?,java,spring,forms,spring-mvc,thymeleaf,Java,Spring,Forms,Spring Mvc,Thymeleaf,如果Spring的字段没有被相应的表单修改,我很难理解如何阻止Spring初始化表单bean的子成员对象。例如,我有一个具有字段地址的用户对象,我将空的用户实例传递给表单(该地址当时为空)。 在表格中,我为所有用户和地址字段设置了输入字段: <form action="#" th:action="@{/user/add}" th:object="${user}" method="post"> ... <input type="text" th:field="*{address.

如果Spring的字段没有被相应的表单修改,我很难理解如何阻止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}"/>
...

...
...
当我在相应的控制器方法中设置断点时,地址对象存在于用户对象中,其所有字段都为null、0、false(默认值)。我知道初始化发生在WebDataBinder中。我怎样才能指示它不要这样做? 动态列表也会发生同样的情况,如果我有一个列表,那么在表单提交之后列表将获得一个新条目。
如果您需要实例化该对象,或者无法将表单中输入的值存储在任何位置,请提供帮助


如果您不想将空对象保存到数据库中,则可能需要在保存前对其进行修改检查。

谢谢您的回答,先生。我知道必须实例化对象才能在某一点上持久化它们。我还知道,我可以在存储到数据库之前应用某种检查。我只是希望(d)有一种方法可以让Spring在绑定表单提交的数据时进行调整。