spring портлет mvc: атрибут модели имеет значение null, несмотря на то, что он является modelAttribute?

В моем рендермаппинге я поместил объект пользователя в свой файл model(model.addAttribute). В связанном JSP я делаю:

<form:form action="x" method="post" modelAttribute="user">
Username: ${user.username}
Age: ${age}
This information is correct: <input type="checkbox" id="correctInformation"/>
<input type="submit" value="Submit"/>
</form:form>

Однако в методе mathing x, когда я извлекаю объект пользователя с помощью тега @ModelAttribute, объект пользователя является новым экземпляром вместо того, который используется в форме (имя пользователя пусто и т. д.).

Кто-нибудь знает, почему это происходит и решение?

edit: я могу использовать <input type:hidden path="username"/>, и это работает, но на самом деле это не так чисто... Есть ли лучшее решение?


person jack    schedule 08.12.2010    source источник
comment
Тот же вопрос, что и этот (также заданный вами) "> stackoverflow.com/questions/4381478/   -  person Javi    schedule 08.12.2010
comment
Не тот же вопрос, это была просто базовая HTML-форма. Это весенняя форма.   -  person jack    schedule 09.12.2010


Ответы (1)


Проблема та же, что и в другом вопросе. Вы не отправляете информацию в форме, если не добавите тег формы для полей. Таким образом, обычный способ — добавить скрытое поле для отправки этой информации следующим образом:

с весенними тегами:

<form:hidden path="username" />

или просто с тегом формы

<input type="hidden" name="username" value=" ${user.username}" />
person Javi    schedule 09.12.2010