Expert JS React Developers for TUI wanted. Join Ciklum and get a $4000 sign-on bonus!
×Закрыть

Spring MVC client side validation

Здравствуйте
Есть веб-приложение сделаное на SpringMVC+Hibernate. Валидация на стороне сервера реализована с помощью JSR 303 (Hibernate Validator).
Я пытаюсь сделать форму с валидацией на стороне клиента.

Вопрос гуру Java: есть ли во всей инфраструктуре java реализация ненавязчивой клиентской валидации? Чтобы не писать гору однотипного javascript.

По аналогии с ASP.NET MVC где можно аттрибутами покрыть модель а валидацию на клиенте будет делать unobtrusive-validation.

Заранее спасибо

👍НравитсяПонравилось0
В избранноеВ избранном0
LinkedIn

Похожие топики

Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Проблема вирішена.

Для валідації на стороні користувача використовується ті ж бібліотеки, що йдуть в комплекті з ASP.NET MVC: jQuery-validation, jQuery-validation-unobtrusive. З боку сервера створено свою tag library, яка генерує інпути з потрібною інформацією для роботи javascript бібліотек. Інформація про вимоги до полів витягується через reflection.

Як результат: анотаціями покриваємо класи моделі, розміщуємо кастомні теги на формі і все — javascript валідація працює. В тому числі фіча для валідації порівняння полів (password-password confirmation). Не написано ані стрічки javascript. Причому це не заважає писати свій код валідації на клієнті.

Все чисто, прозоро і зручно. Коли зручно це, звичайно, не java-way але цивілізація не повинна стояти на місці.

Всім дякую

У спринга теги для валидации. Поищи Spring form taglib . Валидацию на клиенте он должен уметь.

В зависимости от того на чем у вас фронт-енд. Проблема валидации на клиенте относится вообще — то говоря к джаваскрипту, а не к джаве.

Формально Вы правы, но вообще-то у нас все проблемы относятся к решению задач заказчика. Заказчик хочет валидацию на клиенте. Как J2EE может в этом помочь — вот в чем вопрос.

ТС вполне справедливо заметил что ASP.NET MVC умеет решать такие задачи — вам достаточно атрибутами (аннотациями в терминах ява) отметить поля модели а на страницу подключить jQuery unobtrusive.

Может быть в джаве средствами java Server Faces это как — то решается, мы обычно применяли просто свой джаваскрипт на клиенте и все.

Да у меня сомнений нет, что в богатом мире Ява это както должно красиво решаться. Помогите ТС.
А по сути Вашего ответа, Вы не задумывались что Вы делаете двойную работу при изменении модели? Например у вас изменилась политика безопасности, и минимальная длина пароля не 6 а 7 символов. Валидацию на стороне сервера никто не отменял, поэтому для серверной части вы меняете аннотацию, а на клиенте яваскрипт.

Если же заюзать какуюто умную библиотеку (аналог jquery unobtrusive из мира .NET) изменение аннотации на модели автоматически делает валидацию на клиенте.

Да, есть такое, некоторая двойная работа присутствует.

Я говорю о сервер-сайд средстве, которое будет генерить клиентский HTML. Этот HTML должен содержать набор тегов для каждого поля, которые хранят требования к вводимым данным. Клиентский javascript должен пройтись по этим тегам и валидировать поля.
У javascript с библиотеками для валидации проблем нет.

Есть замечательная тулзовина — jquery.validate.unobtrusive. Проблема в том, что spring mvc с ней не дружит.

Подписаться на комментарии