Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Spring MVC, Validation 
:(
    Опции темы
gelo86
Дата 8.3.2008, 16:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 388
Регистрация: 26.10.2007

Репутация: нет
Всего: нет



Jesli ja ispolzuju Spring + Velocity. Sozdaju formu i naprimer delaju commandu tipa Role.class.
Role soderzit Integer id i String name;

Ispolzuju:

    #springBind( "role.id" )
  <input type="text" 
    name="${status.expression}" 
    value="$!status.value" />

Jesli ja wwozu mesto cifr stroku to tomcat kidajet takuju osibku:

org.springframework.web.bind.ServletRequestBindingException: Errors binding onto object 'role'; nested exception is org.springframework.validation.BindException: org.springframework.validation.BeanPropertyBindingResult: 1 errors
Field error in object 'role' on field 'id': rejected value [43rew]; codes [typeMismatch.role.id,typeMismatch.id,typeMismatch.java.lang.Integer,typeMismatch]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [role.id,id]; arguments []; default message [id]]; default message [Failed to convert property value of type [java.lang.String] to required type [java.lang.Integer] for property 'id'; nested exception is java.lang.NumberFormatException: For input string: "43rew"]
    org.springframework.web.bind.ServletRequestDataBinder.closeNoCatch(ServletRequestDataBinder.java:121)
    org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter$ArgumentsResolver.resolveArguments(AnnotationMethodHandlerAdapter.java:646)
    org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:254)
    org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:875)
    org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:809)
    org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:476)
    org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:441)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)



Osibka poniatna. No kak delajetsya stob nelamalas necego a naprimer programno mozno bilo obrabatiwat takije osibki?
PM MAIL   Вверх
greef
Дата 8.3.2008, 20:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 47
Регистрация: 10.10.2007

Репутация: нет
Всего: нет



Цитата

stob nelamalas necego


Что не ломалось?
Чтоб обработать введенные данные напиши валидатор. Например:
https://springmodules.dev.java.net/docs/ref...validation.html

Хотя я б проверял и на стороне клиента тоже, использую js. Зачем лишний раз отправлять данные?
Но в любом случае server validation необходима.

PM MAIL   Вверх
Kangaroo
Дата 8.3.2008, 21:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


AA - Aussie Animal
****


Профиль
Группа: Участник Клуба
Сообщений: 2042
Регистрация: 7.10.2006
Где: US

Репутация: 14
Всего: 104



gelo86
сделай id Integer'ом и переопредели метод initBinder в твоем контроллере так:
Код

@Override
    protected void initBinder(HttpServletRequest request, ServletRequestDataBinder binder) throws Exception {        
        PropertyEditor intEditor = new CustomNumberEditor(Integer.class, true);
        binder.registerCustomEditor(Integer.class, intEditor);    
        super.initBinder(request, binder);
    }

Editor'ы отвечают за биндинг данных с формы и вывод их на форму. Этот при ошибке будет устанавливать поле в null. А дальше уже с
валидатором играйся.


--------------------
Lost....
PM MAIL MSN   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.0898 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.