В привязке данных нет магии.
На самом деле Spring просто заполняет свойства объекта @ModelAttribute
значениями параметров запроса с соответствующими именами (в простейшем случае параметр запроса имеет то же имя, что исвойство, но вложенные свойства также поддерживаются).
Итак, если у вас есть
<input type = "text" name = "firstName" />
и
public class Person {
private String firstName;
... getters, setters ...
}
, вы получитезначение из поля формы.
Spring также предоставляет удобный метод для создания форм HTML.Таким образом, вместо создания полей формы вручную, вы можете написать в JSP:
<form:form modelAttribute = "person" ...>
<form:input path = "firstName" />
</form:form>
или в Velocity (обратите внимание, что в этом случае <form>
создается вручную, а путь свойства начинается с имени атрибута модели):
<form ...>
#springFormInput("person.firstName" "")
</form>
Поля сгенерированных таким образом форм будут предварительно заполнены значениями соответствующих свойств атрибута модели (поэтому необходимо имя атрибута модели).