Ich versuche, die Struts-Validierung zu verwenden, um verschiedene von Benutzern eingegebene Felder zu überprüfen. Wenn jemand mir helfen kann zu sehen, was mir fehlt, wäre ich sehr dankbar. Folgendes habe ich:
Ich habe validation.xml
und TestAction-validation.xml
in WEB-INF/classes/
Hier ist validation.xml
:
Hier ist TestAction-validation.xml
:
Meine struts.xml
erweitert struts-default
, und ich habe eine sehr einfache Aktionsklasse TestAction
, die ActionSupport
erweitert und die Felder testInt
und testString
hat.
Nach dem, was ich gelesen habe, sollte dies für Struts ausreichen, um die eingegebenen Werte zu überprüfen, aber es passiert nicht. Was vermisse ich?
Sie haben zwei Auswahlmöglichkeiten, die auf einer Modellbasis oder pro Aktion validiert werden. Um auf der Aktionsebene zu validieren, erstellen Sie einfach eine Datei mit dem Namen {Ihre Aktion} -validation.xml und legen sie im selben Paket wie die Action-Klasse ab. Um auf Modellebene zu validieren, würden Sie eine ähnliche Datei erstellen, die den Namen des Modellobjekts annimmt, und dann Ihre Aktionsüberprüfungsdatei anweisen, sie anhand der Regeln in der Validierungsdatei des Modells zu validieren. ( Referenz )
Setzen Sie validation.xml in das Wurzelverzeichnis Ihrer Java-Quelldateien (Standardpaket) und setzen Sie TestAction-validation.xml in dasselbe Verzeichnis, in dem sich Ihre TestAction.java-Datei befindet. Die meisten IDEs kopieren automatisch alle Ressourcen in das entsprechende Verzeichnis, in dem die Klassendatei erzeugt wird.
Aktualisierung:
Ersetzen Sie die "%Code%" mit neuer neuer DTD
%Vor%Dies ist die Lösung, es wird funktionieren.
Es könnte ein paar Dinge von ganz oben sein.
1) Verwenden Sie den Standard-Interceptor-Stack - dieser Stack verfügt über einen Validierungsabfanger, der für die Validierung erforderlich ist, andernfalls müssen Sie den Validierungsabfanger manuell in Ihrem Stack angeben.
2) TestAction-validation.xml sollte unter WEB-INF / classes / [package] sein. Wenn also die Aktion com.foo.TestAction ist, sollte sich TestAction-validation.xml unter WEB-INF / classes / com / foo befinden /TestAction-validation.xml
3) Versuchen Sie, den Namen der Methode, an die Sie in der TestAction-Klasse senden, im Namen der Validator-XML-Datei zu verwenden. Sie können TestAction- [method_to_be_validated] -validation.xml
habenHoffe das hilft!
Tags und Links validation struts2 struts-validation