В Springmvc, такие типы, как дата, двойные определены в бобах. Если обработка не выполнена, дата и двойная не могут быть связаны.
Решение состоит в том, чтобы использовать метку @InitBinder, предоставленную Spring MVC
В своем проекте я добавляю метод инициалиста в BaseController и использую аннотацию @InitBinder. Затем Spring MVC зарегистрирует эти редакторы перед привязкой к форме. Конечно, если вы не беспокоитесь, вы также можете написать их отдельно в каждом из ваших контроллеров. Оставшиеся контроллеры наследуют этот класс. Сама весна предоставляет большое количество классов реализации, таких как CustomDateEditor, CustombooleAneDitor, CustomNumbereditor и т. Д., Которые в основном достаточно.
Конечно, мы также не можем использовать эти классы редактора, которые поставляются с нашими собственными. Давайте построим некоторые из них сами.
Импорт org.springframework.beans.propertyeditors.propertieseditor; Public Class DoubleEditor Extends PropertiesEditor {@Override public void setaStxt (строковый текст) бросает allosalargumentException {if (text == null || text.equals ("")) {text = "0"; } setValue (double.parsedouble (text)); } @Override public String getaStxt () {return getValue (). ToString (); }} Импорт org.springframework.beans.propertyeditors.propertieseditor; открытый класс InteGereditor Extends PropertiesEditor {@Override public void setaStxt (строка текста) Throws allodalargumentException {if (text == null || text.equals ("")) {text = "0"; } setValue (integer.parseint (text)); } @Override public String getaStxt () {return getValue (). ToString (); }} Импорт org.springframework.beans.propertyeditors.propertieseditor; public Class floateditor Extends PropertiesEditor {@Override public void setaStxt (строковый текст) бросает allosalargumentException {if (text == null || text.equals ("")) {text = "0"; } setValue (float.parsefloat (text)); } @Override public String getaStxt () {return getValue (). ToString (); }} Импорт org.springframework.beans.propertyeditors.propertieseditor; открытый класс Longeditor Extends PropertiesEditor {@Override public void setaStxt (строковый текст) бросает allosalargumentException {if (text == null || text.equals ("")) {text = "0"; } setValue (long.parselong (text)); } @Override public String getaStxt () {return getValue (). ToString (); }}В базовом концертлере
@Initbinder Protected void initbinder (webdatabinder binder) {binder.registercustomeditor (date.class, new CustomDateeditor (new SimpleDateFormat ("yyyy-mm-dd HH: MM: SS"), True)); / binder.registercustomeditor (int.class, new Customnumbereditor (int.class, true)); Binder.RegisterCustomeditor (int.class, New Integereditor ()); / binder.registercustomeditor (long.class, новый Customnumbereditor (long.class, true)); binder.registerCustomeditor (long.class, new Longeditor ()); Binder.RegisterCustomeditor (Double.Class, New DoubleEditor ()); binder.registerCustomeditor (float.class, new Floateditor ()); } Кода -копия выглядит следующим образом:
открытый класс org.springframework.beans.propertyeditors.propertieseditor расширяет java.beans.propertyeditorsupport {
Видеть? Это также нормально, если ваш класс редактора непосредственно наследует PropertyEditorSupport.
Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.