| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java EE (J2EE) и Spring > Обработка данных из формы с помощью Spring MVC |
| Автор: m0zg 6.10.2011, 21:52 | ||||
Как можно обрабатывать данные в форме с помощью спринговых тегов для форм <form: form /> и привязкой к modelAttribute моего бина, если в этом бине есть ссылки на другие? Т.е., например:
В полях формы обращаюсь в полям бина так:
На сервер данные уходят через JSON. Т.е. серриализуются с помощью jquery'вской либы и отправляются. Ну в и в контроллере в параметрах метода @RequestBody("user") User user. Вобщем, при сабмите вылетает эксепшн, ругается на поля такого типа phone.number. Это можно как-то поправить? |
| Автор: m0zg 6.10.2011, 22:28 | ||
Вот вырезка из эксепшена:
Названия своих полей и классов поменял, т.к. нельзя |
| Автор: AlexeyVorotnikov 7.10.2011, 09:29 |
| В классе User есть методы getPhone() и setPhone(...)? |
| Автор: Stolzen 7.10.2011, 11:52 | ||
Попробуйте убрать это. |
| Автор: m0zg 7.10.2011, 12:34 | ||
Да, конечно, все сеттеры и геттеры присутствуют. Данные уходят, если передать просто через POST. А вот c JSON'ом проблемы. |
| Автор: m0zg 7.10.2011, 12:50 | ||||
Попробовал. Теперь при сабмите ошибка не валится. Значения через JSON уходят нормально, как и раньше. Но в метод попадает объект с пустыми значениями. Т.е. из json'a они в энтити не пишутся. UPD. Ошибся в первом комменте. Там @RequestBody, без ("user"). |
| Автор: m0zg 7.10.2011, 14:08 |
| Видимо, тут нужно помудрить с библиотекой Jackson, чтоб она понимала, что это обращение к вложенному классу. Не пойму только как решить эту проблему. |
| Автор: m0zg 7.10.2011, 14:57 |
| Всё, проблема решена. http://blog.springsource.com/2010/01/25/ajax-simplifications-in-spring-3-0/#comment-172073 решение |
| Автор: Stolzen 7.10.2011, 17:08 |
Сразу не заметил, что через json туда отправляются. Можно сериализовать объект на клиенте через jQuery.param(data) и отправлять на сервер. Если там будет подходящий POJO во входных параметрах, то эти значения в него занесутся. |