Validierung in Spring MVC
wie man das request-Objekt in der validator-Klasse, wie ich brauche, um zu überprüfen, den Inhalt, dh die Parameter vorhanden, die im request-Objekt.
Du musst angemeldet sein, um einen Kommentar abzugeben.
wie man das request-Objekt in der validator-Klasse, wie ich brauche, um zu überprüfen, den Inhalt, dh die Parameter vorhanden, die im request-Objekt.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nicht 100% sicher, dass ich Ihre Frage richtig, aber mit Spring MVC, übergeben Sie das Objekt in der Methode und kommentieren es (zumindest mit Feder 3), etwa so:
Den entsprechenden annotation-hier ist @Gültig, die Teil von JSR-303. Gehören die BindingResult param ebenso, so haben Sie eine Möglichkeit, um auf Fehler zu überprüfen, wie Sie oben dargestellt sind.
Haben Sie zwei Möglichkeiten:
Für JSR 303 Sie brauchen, Spring 3.0 und muss kommentieren Ihre Model-Klasse mit JSR-303-Annotationen und schreiben Sie eine @Gültig vor Sie parameter in der Web-Controller Handler-Methode. (wie Willie Wheeler zeigen in seiner Antwort). Zusätzlich müssen Sie aktivieren diese Funktion in der Konfiguration:
Für Frühjahr Prüfungen, den Sie schreiben müssen, Ihre Bestätigung (siehe Jigar Joshi Antwort), die die org.springframework.die Validierung.Validator - Schnittstelle. Das müssen Sie sich registrieren und Ihre Prüfung in der Steuerung. Im Frühjahr 3.0 können Sie dies tun, in einem
@InitBinder
annotierte Methode, durch Verwendung WebDataBinder.setValidator
(setValidator es ist eine Methode der super-KlasseDataBinder
)Für mehr details, haben Sie einen Blick auf die Spring reference, Kapitel 5.7.4 Spring MVC 3-Validierung.
BTW: im Frühjahr 2 es war etwas wie ein
setValidator
Eigenschaft in der SimpleFormController.binder.addValidator(new FooValidator());
zu kombinieren Validierung Ansätze.Mithilfe von einfachen Prüf - (benutzerdefinierter validator)
Sie brauchen keine Anfrage Objekt zu erhalten, param gibt es im Validator. Können Sie direkt aus.
Beispiel : Dieser wird überprüfen, Bereich von der Anfrage mit dem Namen
name
undage
Siehe Auch
Sie könnte leicht fügen Sie eine weitere Methode mit HttpServletRequest-parameter.
Beachten Sie, dass Sie nicht überschreiben einer Methode hier
Ich habe auch das gleiche Problem, wenn ich spring validator validate captcha.
Der validator-Implementierung, möchte ich, um das richtige captcha von HttpSession(von HttpServletRequest bekommen HttpSession).
Nicht gefunden keine gute codes für die bekommen Sie in der validator, also schlecht!!!
Gibt es einige Kompromiss-Vorschlag wie folgt:
In der verbindlichen form DTO fügen Sie ein zusätzliches Feld (Aufruf: correctCaptcha), in der Controller-Methode den Wert des Feldes aus der HttpSession , dann können Sie Sie überprüfen in der validator
Fügen Sie das HttpServletRequest-Referenz in der verbindlichen form DTO, dann kann es in der validator.