|
|
|
Spring MVC: использование @ModelAttribute, биндеров, валидаторов
|
|||
|---|---|---|---|
|
#18+
Сразу скажу - раньше не юзал, с недавнего времени стал, но исключительно из-за "чистоты кода", думал, не понимаю, поиспользую и пойму. Не понял. Прошу помощи, может, не туда смотрю? Допустим, есть форма из 2-ух элементов (по минимуму, для теста). Процедура: 1. Создаем модель формы: Код: java 1. 2. 3. 4. 5. 2. Создаем валидатор: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Причем, хочу заметить, в валидатор прийдется заинжектить DAO, так как некоторые проверки зависят от значений в базе. 3. Используем тэги неймспейса <form: в jsp-представлении. Причем, стандартный вывод ошибок "по-спринговски" меня не устраивает. Даже используя <form:errors path="*"/>, потому что я, скажем, хочу выводить их не в спане, а в разных дивах или списке. Для этого уже надо использовать <spring:bind ...> и обрабатывать ошибки вручную. 4. Настраиваем "предконтроллер" перед страницей с нашей формой: Код: java 1. 2. 3. 4. 5. 5. Настраиваем контроллер: Код: java 1. 2. 3. 4. 5. 6. Так, очень по-скромному. Если я хочу отослать форму динамически (скажем, через популярный плагин к jQuery ajaxForm), то надо вытащить из result ошибки и скинуть их, скажем, в json. Или вернуть положительный ответ/ссылку/прочее. Второй вариант. Я назвал его "на коленках". Та же форма (только без form:), тот же контроллер. Шаги 1-4 опускаются, остается контроллер: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. Вот и спрашивается - нафига козе баян? Фактически, 2-ух повторяющихся форм в проекте нет, 40 форм - 40 моделей и 40 валидаторов. Да, с валидаторами и моделями как бы "солиднее" и "кошерней", чего только стоят методы у ValidationUtils ... И если при перезагрузке той же страницы при ошибках это немного добавляет автоматизма, то при динамической отправке формы на сервере прирост автоматизма мизерный, а на клиенте все равно разгребать все самому. Может, у меня для этого слишком простой проектик? - Страницы, формочки, переходы ... И просто я сам себе создал проблему, связавшись с высокоуровневой реализацией MVC? Но как-то для меня на первых двух местах идут секьюрити и дизайн (+ юзабилити + клиентский функционал), а эта автоматизация (которая под вопросом) - как-то не очень ... тем более, если надо выкручивать мозг, придумывая, как обыграть вывод ошибок в том виде и дизайне, который задуман. Не подумайте, не ругаю. Просто может я действительно чего-то не понимаю? И все это придумано для чего-то более крупного, совершенного. Или наоборот, когда страницы в стиле стандартных спринговских (логина, например) - все белое, элементы стандартные - автоматизация наше все? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2012, 02:56:31 |
|
||
|
Spring MVC: использование @ModelAttribute, биндеров, валидаторов
|
|||
|---|---|---|---|
|
#18+
Ну в общем то да, у меня были примерно такие же вопросы. В итоге делаю так - если на форме до 6-7 полей - использую наколеночный вариант, правда параметры инжектаются прямо в метод через @RequestParam, на большем количестве - уже проще через биндер, валидатор и т.п. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2012, 11:13:04 |
|
||
|
Spring MVC: использование @ModelAttribute, биндеров, валидаторов
|
|||
|---|---|---|---|
|
#18+
Это не выход ... например, если чекбокс не выбрать, но ловить параметр через RequestParam, выдаст исключение - такого параметра в запросе не окажется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2012, 12:00:05 |
|
||
|
Spring MVC: использование @ModelAttribute, биндеров, валидаторов
|
|||
|---|---|---|---|
|
#18+
И все же - пару слов, к "в теме" ... плиз. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2012, 12:24:34 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=37850002&tid=2131502]: |
0ms |
get settings: |
13ms |
get forum list: |
22ms |
check forum access: |
6ms |
check topic access: |
6ms |
track hit: |
49ms |
get topic data: |
17ms |
get forum data: |
5ms |
get page messages: |
74ms |
get tp. blocked users: |
2ms |
| others: | 405ms |
| total: | 599ms |

| 0 / 0 |
