Bei der Verwendung von SpringMVC begegnen Sie häufig Conversions zwischen Datumszeichenfolgen im Formular und dem Datumstyp von Javabean, während SpringMVC standardmäßig Konvertierungen in diesem Format unterstützt. Daher müssen Sie die Datenbindung manuell konfigurieren und anpassen, um dieses Problem zu lösen.
Verwenden Sie SpringMVC -Annotation @initbinder und Spring's WebDateBinder -Klasse, um in Controllern zu arbeiten, die die Datumsumrechnung erfordern.
WebDatabinder wird verwendet, um die Anforderungsparameter an den angegebenen Eigenschaftseditor zu binden. Da der an den Controller im Vordergrund übergebene Wert vom Zeichenfolge Typ ist, findet der Feder den entsprechenden Editor für die Konvertierung, wenn der Wert im Modell festgelegt wird, wenn die Eigenschaft von SET ein Objekt ist.
Der Code ist wie folgt:
@Initbinder public void initbinder (WebDatabinder Binder) {SimpleDateFormat DateFormat = new SimpledateFormat ("yyyy-mm-dd"); DateFormat.SetLenient (false); Binder.registerCustomeditor (Datum.Class, neuer CustomDateEditor (DateFormat, True)); }Müssen die Konfigurationsdatei in SpringMVC hinzufügen
<!-Parser Registrierung-> <bean> <Eigenschaft name = "messageConverters"> <list> <ref bean = "stringHttpMessageConverter"/> </list> </property> </bean> <!-String Type Parser, die direkte Rückgabe von String ----> <bean id = "strichhttpmessPmonverter zulassen
Schreibwechsel
<MVC: Annotationsgetrieben> <MVC: Nachrichtenkonverter> <bean> <constructor-arg value = "utf-8"/> </bean> </mvc: messagekonverter> </mvc: Annotationsmotiv>
expandieren:
Spring MVC registriert diese Redakteure, bevor das Formular verbindet. Der Frühling selbst bietet eine große Anzahl von Implementierungsklassen wie CustomDateEditor, Custombooleaneditor, CustomNumbereditor usw., die im Grunde genommen genug sind.
Rufen Sie die RegisterCustomeditor -Methode von WebDatabinder bei Verwendung an
Der Quellcode von RegisterCustomeditor:
public void RegisterCustomeditor (Klasse <?> forderttype, PropertyEditor PropertyEditor) {getPropertyEditorRegistry (). RegisterCustomeditor (forderttype, PropertyEditor);} Der erste Parameter fordernType ist der Typ, der konvertiert werden muss.
Der zweite Parameter -EigenschaftSerzieher ist der Eigenschaftseditor, der eine Schnittstelle ist. Die oben genannten Beispiele wie CustomDateEditor erben alle die EigenschaftsDitorsupport -Klasse, die diese Schnittstelle implementiert.
Wir können diese mit ihnen gelieferten Redakteurklassen auch nicht verwenden.
Wir können uns selbst konstruieren:
import org.springframework.beans.propertyEditors.Propertieseditor; Public Class DoubleDitor erweitert PropertyEditorsupport {@Override public void setAtext (String text) löst illegalArgumentException {if (text == null || text.equals (")) {text =" 0 "; } setValue (double.ParseDoUlble (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.