


Einführung in SpringMVC-Typkonvertierungs- und Verifizierungsmethoden (mit Code)
Dieser Artikel bietet Ihnen eine Einführung in die Typkonvertierungs- und Überprüfungsmethoden von SpringMVC (mit Code). Ich hoffe, dass er für Freunde hilfreich ist.
Spring MVC-Datenbindungsprozess:
SpringMvc übergibt das ServletRequest-Objekt und die formale Parameterinstanz der Zielmethode zur Erstellung an die WebDataBinderFactory-Instanz ein DataBinder-Instanzobjekt. DataBinder ruft die im SpringMvc-Kontext zusammengestellte ConversionService-Komponente auf, um Typkonvertierung und Datenformatierung durchzuführen, und füllt die Servlet-Anforderungsinformationen in das formale Parameterobjekt. Rufen Sie den Validator-Primärschlüssel auf, um die Gültigkeit der ausgewählten Daten des formalen Parameterobjekts zu überprüfen, das an die Anforderungsinformationen gebunden wurde, und generieren Sie schließlich das BindingData-Objekt für das Datenbindungsergebnis. SpringMVC extrahiert das formale Parameterobjekt und das Überprüfungsfehlerobjekt in BindingResult und weist sie den entsprechenden Parametern der Verarbeitungsmethode zu
Aus dem Quellcode können wir ersehen, dass das DataBinder-Objekt über WebDataBinderFactory erstellt wird
Benutzerdefinierter Typkonverter
Wenn wir auf besondere Anlässe stoßen, müssen wir möglicherweise unseren eigenen Typkonverter definieren. Lassen Sie mich einen benutzerdefinierten Typkonverter erklären, der eine Zeichenfolge in ein emp-Objekt konvertiert. Wenn die Seite die Datenbindung oder Typkonvertierung nicht abschließen kann, löst springmvc eine Ausnahme aus. Die Ausnahmeinformationen können mit BindingResult abgerufen werden.
Spring definiert drei Arten von Konverterschnittstellen, die sie implementieren, kann in ConversionServiceFactoryBean als benutzerdefinierter Konverter registriert werden.
Convertre: S-Typ in T-Typ konvertieren.
ConverterFactory: Kapselt mehrere „homogene“ Konverter derselben Klasse zusammen. Wenn Sie einen Typ in einen anderen Typ und Unterklassenobjekte (z. B. String in Number in eine Unterklasse von Number ) konvertieren möchten, können Sie dies verwenden Konverter
GenericConverter: Er wählt die Typkonvertierung basierend auf den Kontextinformationen in der Hostklasse aus, in der sich das Quellklassenobjekt und das Zielklassenobjekt befinden.
package com.spring.mvc.controller; import org.springframework.core.convert.converter.Converter; import org.springframework.stereotype.Component; @Component public class UserConverter implements Converter<String, User>{ @Override public User convert(String source) { System.out.println(source); String users [] = source.split("-"); User user = new User(); user.setUno(Integer.valueOf(users[0])); user.setUsername(users[1]); user.setUserpass(users[2]); return user; } }
ConversionService ist die Kernschnittstelle des Typkonverters in SpringMVC. Um einen benutzerdefinierten Typkonverter hinzuzufügen, müssen Sie diese Schnittstelle implementieren/ConversionServiceFactoryBean verwenden, um den ersten ConversionService im IOC-Container von Spring zu erstellen und ihn im Bean zu konfigurieren Eigenschaften Für die Implementierungsklasse des Typkonverters wird der Typkonverter automatisch aufgerufen, wenn SpringMvc die formale Parameterbindung der Methode übernimmt.
<!--将非mapping配置下的请求交给默认的Servlet来处理 --> <mvc:default-servlet-handler /> <bean id="conversionService" class="org.springframework.context.support.ConversionServiceFactoryBean"> <property name="converters"> <set> <ref bean="userConverter" /> </set> </property> </bean> <!-- 注册类型转换器 --> <mvc:annotation-driven conversion-service="conversionService" />
In der tatsächlichen Entwicklung muss außerdem Folgendes konfiguriert werden:
Datenformatierung
Eingabe-/Ausgabeformatierung von Attributen, Im Wesentlichen gehört es immer noch zur Kategorie der Typkonvertierung. Spring definiert eine FarmattingConversionService-Implementierungsklasse, die die ConversionService-Schnittstelle im Formatierungsmodul implementiert. Diese Implementierungsklasse erweitert GenericConversionService und verfügt daher über Typkonvertierungs- und Formatierungsfunktionen. FormattingConversionService verfügt über eine FormattingConversionServiceFactoryBean-Factory-Klasse, die zum Erstellen ersterer verwendet wird. Wir möchten dies registrieren
<mvc:annotation-driven conversion-service="FormattingConversionServiceFactoryBean" />
JSR303
jsr303 ist das von Java bereitgestellte Standard-Framework für die Überprüfung der Bean-Daten. Es wurde in JavaEE6.0 aufgenommen und JSR303 bestanden Markieren Sie die Bean-Attribute mit Standarddaten wie @NotNull und @Max, um Validierungsregeln anzugeben, und verifizieren Sie das Bean über die markierte Verifizierungsschnittstelle.
@NotEmpty @NotNull private String name; @NotNull @NotEmpty private String age; @NotNull @NotEmpty @Email private String email;
Wir verwenden das von SpringMVC an der Rezeption bereitgestellte Form-Tag und verwenden den Pfad „Form: Fehler“, um das Attribut
@RequestMapping(value="/student",method=RequestMethod.POST) public String add(@Valid()Student student,BindingResult result){ if (!result.hasErrors()) {//判断是否有格式转换错误或者其他校验没通过 userService.addStudent(student); return "redirect:list"; }else return "addPage"; }
Internationalisierung der SpringMvc-Eingabeaufforderungsnachricht< zu binden 🎜>
<!-- 注册国际化信息,必须有id,指定资源文件名称,资源文件在src目录下 --> <bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource"> <property name="basename" value="message"></property> </bean>
Das obige ist der detaillierte Inhalt vonEinführung in SpringMVC-Typkonvertierungs- und Verifizierungsmethoden (mit Code). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



SpringBoot und SpringMVC sind beide häufig verwendete Frameworks in der Java-Entwicklung, es gibt jedoch einige offensichtliche Unterschiede zwischen ihnen. In diesem Artikel werden die Funktionen und Verwendungsmöglichkeiten dieser beiden Frameworks untersucht und ihre Unterschiede verglichen. Lassen Sie uns zunächst etwas über SpringBoot lernen. SpringBoot wurde vom Pivotal-Team entwickelt, um die Erstellung und Bereitstellung von Anwendungen auf Basis des Spring-Frameworks zu vereinfachen. Es bietet eine schnelle und einfache Möglichkeit, eigenständige, ausführbare Dateien zu erstellen

Was ist der Unterschied zwischen SpringBoot und SpringMVC? SpringBoot und SpringMVC sind zwei sehr beliebte Java-Entwicklungsframeworks zum Erstellen von Webanwendungen. Obwohl sie häufig separat verwendet werden, sind die Unterschiede zwischen ihnen offensichtlich. Zunächst einmal kann SpringBoot als Erweiterung oder erweiterte Version des Spring-Frameworks betrachtet werden. Es soll den Initialisierungs- und Konfigurationsprozess von Spring-Anwendungen vereinfachen und Entwicklern helfen

Der Unterschied zwischen Spring und SpringMVC: 1. Positionierung und Funktionen; 3. Anwendungsfelder; Detaillierte Einführung: 1. Positionierung und Funktionen. Spring ist ein umfassendes Anwendungsentwicklungs-Framework, das Abhängigkeitsinjektion, aspektorientierte Programmierung, Transaktionsverwaltung und andere Funktionen bietet. Es soll die Entwicklung von Anwendungen auf Unternehmensebene vereinfachen Ein darin enthaltenes Modul wird für die Entwicklung von Webanwendungen verwendet und implementiert das MVC-Muster 2. Kernfunktionen und so weiter.

SpringBoot und SpringMVC sind zwei Frameworks, die häufig in der Java-Entwicklung verwendet werden. Sie werden beide vom Spring-Framework bereitgestellt, weisen jedoch einige Unterschiede in Funktionen und Verwendung auf. In diesem Artikel werden die Merkmale und Unterschiede von SpringBoot bzw. SpringMVC vorgestellt. 1. Funktionen von SpringBoot: Vereinfachte Konfiguration: SpringBoot vereinfacht den Projektkonfigurationsprozess erheblich durch das Prinzip der Konvention vor der Konfiguration. Es kann die für das Projekt und die Entwickler erforderlichen Parameter automatisch konfigurieren

Die Unterschiede zwischen Springboot und SpringMVC sind: 1. Unterschiedliche Konfigurationen; bereitgestellte Funktion; 8. Verschiedene Funktionen; 9. Unterschiedliche Community- und Dokumentationsunterstützung; 10. Ob Bereitstellungsdeskriptoren erforderlich sind.

Mit der Entwicklung des Internets werden Webdienste immer häufiger eingesetzt. Als Anwendungsprogrammierschnittstelle bringt JavaAPI ständig neue Versionen auf den Markt, um sich an unterschiedliche Anwendungsszenarien anzupassen. Als beliebtes Open-Source-Framework kann SpringMVC uns dabei helfen, auf einfache Weise Webanwendungen zu erstellen. In diesem Artikel wird ausführlich erläutert, wie SpringMVC für die Webdienstverarbeitung in der JavaAPI-Entwicklung verwendet wird, einschließlich der Konfiguration von SpringMVC, dem Schreiben von Controllern und der Verwendung

Die Rolle des Interceptors von SpringMVC ähnelt dem Filter in der Servlet-Entwicklung, der zur Vor- und Nachbearbeitung des Prozessors verwendet wird. Abfangjäger werden in einer bestimmten Reihenfolge zu einer Kette verbunden, und diese Kette wird als Abfangkette (InterceptorChain) bezeichnet. Wenn auf eine abgefangene Methode oder ein abgefangenes Feld zugegriffen wird, werden die Interceptoren in der Interceptor-Kette in der Reihenfolge aufgerufen, in der sie zuvor definiert wurden. Abfangjäger sind auch die konkrete Umsetzung von AOP-Ideen. Der Unterschied zwischen Interceptoren und Filtern: Filter (Filter) Der Verwendungsbereich von Interceptor (Intercepter) ist Teil der Servlet-Spezifikation und kann von jedem JavaWeb-Projekt verwendet werden

Analyse der Ähnlichkeiten und Unterschiede zwischen SpringBoot und SpringMVC SpringBoot und SpringMVC sind sehr wichtige Entwicklungsframeworks im Java-Bereich. Obwohl beide Teil des Spring-Frameworks sind, gibt es einige offensichtliche Unterschiede in der Verwendung und Funktionalität. In diesem Artikel werden SpringBoot und SpringMVC verglichen und die Ähnlichkeiten und Unterschiede zwischen ihnen analysiert. Lassen Sie uns zunächst etwas über SpringBoot lernen. SpringBo
