JSP обрабатывается и визуализируется в HTML, что является просто текстом.
При отправке формы браузер берет значения полей <input>
и сериализует их в определенном формате. С типичной application/x-www-form-urlencoded
типа содержимым, следующего <input>
элементов
<form action="/some/url" method="POST">
<input name="someField" value"someValue" type="text" />
<input name="someOtherField" value"someOtherValue" type="text" />
<input name="submit" value"submit" type="submit" />
</form>
Сериализованным формат будет выглядеть что-то вроде
someField=someValue&someOtherField=someOtherValue&submit=submit
весны будет принимать этот String
из тела запроса в качестве параметров запроса и попытаться восстановить ваш объект команды (например, foo
) из его значений. Вышеуказанный запрос можно было сопоставить с классом, подобным
class Foo {
private String someField;
private String someOtherField;
public String getSomeField() {
return someField;
}
public void setSomeField(String someField) {
this.someField = someField;
}
public String getSomeOtherField() {
return someOtherField;
}
public void setSomeOtherField(String someOtherField) {
this.someOtherField = someOtherField;
}
}
Любые поля, которые он не может отобразить, он игнорирует.
Итак, вы говорите, что каждая форма должна иметь скрытый ввод для всех свойств класса Foo ... а затем в контроллере, например: @RequestMapping (value = {"/ secondRequest"} , method = {org.springframework.web.bind.annotation.RequestMethod.POST}) public ModelAndView secondRequest (Foo foo, запрос HttpServletRequest) Правильно? – Greg
@Greg Они не должны быть скрыты. Кроме того, хотя то, что у вас есть, эквивалентно, вы должны иметь '@ModelAttribute (" foo ") Foo foo' вместо просто' Foo foo'. –
Ну, я не показываю все свойства для пользователя, поэтому некоторые из них должны быть скрыты ... но это кажется слишком сложным для того, что я хочу сделать. Есть ли лучший способ подойти к проблеме? – Greg