Java 如何使用Spring中的SimpleFormController将多个表单输入组合到单个对象中?

Java 如何使用Spring中的SimpleFormController将多个表单输入组合到单个对象中?,java,spring,spring-mvc,Java,Spring,Spring Mvc,我有一个名为Person的对象,它具有以下属性: int id; Name name; String address; Date birthday; String email; String note; String firstName; String middleName; String lastName; Name类具有以下属性: int id; Name name; String address; Date birthday; String email; String note; S

我有一个名为Person的对象,它具有以下属性:

int id;
Name name;
String address;
Date birthday;
String email;
String note;
String firstName;
String middleName;
String lastName;
Name类具有以下属性:

int id;
Name name;
String address;
Date birthday;
String email;
String note;
String firstName;
String middleName;
String lastName;
在我的表格中,我有以下输入字段:

<tr>
    <td>First Name:</td>
    <td><form:input path="firstName" /></td>
</tr>
<tr>
    <td>Middle Name:</td>
    <td><form:input path="middleName" /></td>
</tr>
<tr>
    <td>Last Name:</td>
    <td><form:input path="lastName" /></td>
</tr>

名字:
中名:
姓氏:
在将名称输入字段的值传递给SimpleFormController将创建的Person对象之前,如何检索名称输入字段的值并将其转换为名称对象?我很确定我需要使用initBinder()方法,但我不知道如何开始

我正在使用Spring 3.0,是的,我知道SimpleFormController已经被弃用,但我仍然打算使用它。

您需要编写:

<form:input path="name.firstName" />
...

仅此而已,您不需要编写自己的绑定。

这解决了我关于formBackingObject()方法的第一个错误。提交时会产生数据绑定错误。但我无法找出原因的根源。你认为这和名字字段有关吗?@Terence Ponce:你是说“名字”?--我不这么认为。哦,没关系。原因与此无关。你对我问题的解决办法奏效了。谢谢显然,该错误是由生日字段未绑定到对象引起的。但这是一个全新的问题。这种方法现在已被弃用。一个建议是编写一个临时存储多种数据类型的类对象,并将该类对象用于表单模型属性,以便可以更新/获取从该类对象输入的多个表单所需的数据。