Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Java EE (J2EE) и Spring > Spring MVC |
Автор: gelo86 8.3.2008, 16:33 |
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? |
Автор: greef 8.3.2008, 20:58 | ||
Что не ломалось? Чтоб обработать введенные данные напиши валидатор. Например: https://springmodules.dev.java.net/docs/reference/0.4/html/validation.html Хотя я б проверял и на стороне клиента тоже, использую js. Зачем лишний раз отправлять данные? Но в любом случае server validation необходима. |
Автор: Kangaroo 8.3.2008, 21:09 | ||
gelo86, сделай id Integer'ом и переопредели метод initBinder в твоем контроллере так:
Editor'ы отвечают за биндинг данных с формы и вывод их на форму. Этот при ошибке будет устанавливать поле в null. А дальше уже с валидатором играйся. |