In Projekten unter Verwendung des SpringMVC -Frameworks begegnen Sie häufig Daten, deren Datentypen Datum, ganzzahliger, doppelt usw. an die Entität des Controllers gebunden sein müssen, oder der Controller muss diese Daten akzeptieren. Wenn diese Art von Datentyp nicht verarbeitet wird, wird er nicht gebunden.
Hier können wir die Annotation @Initbinder verwenden, um diese Probleme zu lösen, damit SpringMVC diese Redakteure registriert, bevor das Formular verbindet. Im Allgemeinen sind diese Methoden im Basicontroller enthalten. Der Controller, der eine solche Konvertierung durchführen muss, muss nur den Basecontroller erben. Tatsächlich bietet Spring viele Implementierungskurse an, wie CustomDateDitor, Custombooleaneditor, CustomNumbereditor usw., die im Grunde genommen ausreichend sind.
Die Demo ist wie folgt:
öffentliche Klasse BaseController {@initbinder protected void Initbinder (WebDatabinder Binder) {binder.registerCustomeditor (Datum.Class, New MyDateEditor ()); binder.registerCustomeditor (double.class, New DoubleDitor ()); Binder.registerCustomeditor (Integer.Class, New Integereditor ()); } Private Class MyDateEditor erweitert PropertyEditorsupport {@Override public void setAtext (String text) löst IllegalArgumentException aus {SimpleDateFormat format = new SimpleDateFormat ("yyyy-mm-dd hh: mm: ss"); Datum Datum = null; try {date = format.parse (text); } catch (ParseException e) {format = new SimpledateFormat ("yyyy-mm-dd"); try {date = format.parse (text); } catch (parseException e1) {}} setValue (Datum); }} public class DoubleDitor erweitert den PropertieDitor {@Override public void setAtext (String text) löst IllegalArgumentException {if (text == null || text.equals ("") {text = "0" aus; } setValue (double.ParseDoUlble (Text)); } @Override public String getaStext () {return getValue (). ToString (); }} public class 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 (); }}}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.