![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| MaxPayneC |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 324 Регистрация: 18.2.2006 Репутация: 3 Всего: 9 |
Имеется такой класс (взят из примера, выложенного авторами Spring):
На некоторые его поля, как можно видеть, повешены ограничения - @NotNull, @Future и т.п. Есть контроллер:
Данный подход к организации работы контроллера показался мне очень удобным (аннотациями определяем, какие конкретно урлы на какие методы контроллера идут, и возвращаем соответствующие имена вьюх). Хотелось бы как-то научиться проводить валидацию полей формы на сервере, без "реальной" отправки данных. С использованием фреймворка Struts (для сравнения) это делалось путем отправки на сервер по урлу того же самого экшна сериализованной формы с двумя прилепленными параметрами, экшн проводил валидацию (в соответствии с хмл-файлом, аннотациями или методом validate()) и возвращал текстом JSON-описание возникших ошибок. Если их не было, происходила реальная отправка формы. Данный механизм был мне очень удобен, и поэтому хотелось бы с использованием Spring сделать что-то подобное. Буду признателен за описание или ссылку на описание процесса валидации форм с помощью AJAX, и возможно советы по улучшению подхода к созданию контроллера. Заранее спасибо |
||||
|
|||||
| MaxPayneC |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 324 Регистрация: 18.2.2006 Репутация: 3 Всего: 9 |
Ап. Что, никто не делал валидацию на AJAX?
|
|||
|
||||
| afon |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 85 Регистрация: 5.4.2008 Где: Украина, Киев Репутация: нет Всего: 1 |
Я делал. Немного не так как у вас, на обычных xml-описанных бинах, но все-таки.
В общем, отдельный контроллер, на который шлется ajax-request с объектом command и который проверяет валидность данных. Этот контроллер возвращает вьюху в которой только один результат true|false; форма, сделав ajax вызов методами jquery, парсит результат, и если он true - делает обычный javascript-овый this.form.submit(). Примерно так. PS: или вы хотели прикрутить обычный org.springframework.validation.Validator ? Не думаю что там будет сильно сложнее, наверное в случае ошибки шлете в свою вьху какой-нибудь error объект и всех делов. Если же все success, возворащаете в форму true и редиректите страницу куда надо. Я бы сделал так. Это сообщение отредактировал(а) afon - 13.4.2010, 15:36 |
|||
|
||||
| MaxPayneC |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 324 Регистрация: 18.2.2006 Репутация: 3 Всего: 9 |
А если мне нужны подробности по каждому полю, вызвавшему ошибку? Сериализацию/десериализацию в xml или json надо писать руками, и разбор его на клиенте соответственно, или есть что-то готовое?
|
|||
|
||||
| afon |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 85 Регистрация: 5.4.2008 Где: Украина, Киев Репутация: нет Всего: 1 |
xstream к примеру, или flexjson.
Достаточно поискать "spring json view" и можно найти на свой вкус несколько разных методов преобразования и возврата данных. Я xstream-ом пользуюсь - http://xstream.codehaus.org/json-tutorial.html. Простая вьюха jsonview, которая вынимает объект (какого нибудь константного имени) из мапы модели и конвертит его, а потом возвращает. Ну а на самой страничке уже jquery работает по разбору json объекта. Примеры тоже есть в массовом количестве |
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |