Warum funktioniert die Validierung der Struts für mich nicht?

8

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/

eingegeben

Hier ist validation.xml :

%Vor%

Hier ist TestAction-validation.xml :

%Vor%

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?

    
Eric Wilson 19.02.2010, 19:26
quelle

4 Antworten

6

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:

Ссылка

​​Wie Validierer einer Aktion gefunden werden

    
Gladwin B 25.02.2010, 01:57
quelle
4

Ersetzen Sie die "%Code%" mit neuer neuer DTD

%Vor%

Dies ist die Lösung, es wird funktionieren.

    
Venkata Naresh Babu 27.04.2014 17:20
quelle
3

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

haben

Hoffe das hilft!

    
garyj 22.02.2010 02:19
quelle
3

Vielleicht weil die dtd-Definition

ist

Ссылка

ist nicht mehr da

Beim Start von struts2 bekomme ich diese Ausnahme und meine Validierungsabfangprogramme funktionieren nicht mehr

%Vor%     
fustaki 19.06.2013 17:25
quelle