In SpringMVC sind Typen wie Datum, doppelt in Bohnen definiert. Wenn keine Verarbeitung abgeschlossen ist, kann das Datum und das Doppel nicht gebunden werden.
Die Lösung besteht darin, das von Spring MVC bereitgestellte @Initbinder -Tag zu verwenden
In meinem Projekt füge ich die Methode Initbinder in BaseController hinzu und verwende die Annotation @Initbinder Annotation. Anschließend registriert Spring MVC diese Redakteure, bevor das Formular verbindet. Wenn Sie sich nicht darum kümmern, können Sie sie natürlich auch in jedem Ihrer Controller separat schreiben. Die verbleibenden Controller erben diese Klasse. Der Frühling selbst bietet eine große Anzahl von Implementierungsklassen wie CustomDateEditor, Custombooleaneditor, CustomNumbereditor usw., die im Grunde genommen genug sind.
Natürlich können wir diese Editor -Kurse, die mit unseren eigenen verbunden sind, auch nicht verwenden. Lassen Sie uns einige von ihnen selbst konstruieren.
import org.springframework.beans.propertyEditors.Propertieseditor; public class DoubleDitor erweitert den PropertiederDitor {@Override public void setAtext (String text) löscht illegalArgumentException {if (text == null || text.equals ("")) {text = "0"; } setValue (double.ParseDoUlble (Text)); } @Override public String getaStext () {return getValue (). ToString (); }} import org.springframework.beans.propertyEditors.Propertieseditor; öffentliche Klasse InteGerEditor erweitert den PropertieDitor {@Override public void setAtext (String text) löst illegalArgumentException {if (text == null || text.equals ("")) {text = "0" aus; } setValue (Integer.ParseInt (Text)); } @Override public String getaStext () {return getValue (). ToString (); }} import org.springframework.beans.propertyEditors.Propertieseditor; öffentliche Klasse Floateditor erweitert den Propertieseditor {@Override public void setAtext (String text) löst IllegalArgumentException {if (text == null || text.equals ("")) {text = "0" aus; } setValue (float.parsefloat (text)); } @Override public String getaStext () {return getValue (). ToString (); }} import org.springframework.beans.propertyEditors.Propertieseditor; öffentliche Klasse -Longdititor erweitert den PropertiederDitor {@Override public void setAtext (String text) löscht IllegalArgumentException {if (text == null || text.equals ("")) {text = "0"; } setValue (long.parselong (Text)); } @Override public String getaStext () {return getValue (). ToString (); }}In Basecontroller
@Initbinder Protected void Initbinder (WebDatabinder Binder) {binder.registerCustomeditor (Datum.Class, neuer 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, neuer CustomNumbereditor (Long.class, true)); Binder.registerCustomeditor (Long.Class, New Longditor ()); binder.registerCustomeditor (double.class, New DoubleDitor ()); binder.registerCustomeditor (float.class, neuer floatitor ()); } Die Codekopie lautet wie folgt:
öffentliche Klasse org.springframework.beans.propertyeditors.propertieseditor erweitert java.beans.propertyeditorsupport {
Sehen? Es ist auch in Ordnung, wenn Ihre Editorklasse PropertyEditorsupport direkt erbt.
Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.