Как мне объединить несколько входов формы в один объект с SimpleFormController в Spring? - PullRequest
2 голосов
/ 17 мая 2011

У меня есть объект с именем Person, который имеет следующие свойства:

int id;
Name name;
String address;
Date birthday;
String email;
String note;

Класс Name имеет следующие свойства:

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>

Как я смогу получить значение полей ввода имени и превратить его в объект имени перед передачей его объекту Person, который будет создан SimpleFormController? Я уверен, что мне нужно использовать метод initBinder (), но я не знаю, с чего начать.

Я использую Spring 3.0, и да, я знаю, что SimpleFormController уже устарел, но я все еще собираюсь его использовать.

1 Ответ

5 голосов
/ 17 мая 2011

Вам нужно написать:

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

в тебе JSP. И нужно переопределить метод formBackingObject , чтобы он перенастраивал пустой объект Person со ссылкой на объект имени emtpy

protected Object formBackingObject(HttpServletRequest request) {
   Person person = new Person();
   person.Name = new Name();
   return person;
}

Вот и все, вам не нужно писать собственную привязку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...