Pourquoi est-entretoises de validation ne fonctionne pas pour moi?
Je suis en train d'utiliser Struts validation pour vérifier les différents champs de saisies par les utilisateurs. Si quelqu'un est capable de m'aider à voir ce que je manque, je vous serais extrêmement reconnaissant. Voici ce que j'ai:
J'ai mis validation.xml
et TestAction-validation.xml
dans WEB-INF/classes/
Ici est validation.xml
:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC
"-//OpenSymphony Group//XWork Validator Config 1.0//EN"
"http://www.opensymphony.com/xwork/xwork-validator-config-1.0.dtd">
<validators>
<validator name="int" class="com.opensymphony.xwork2.validator.validators.IntRangeFieldValidator"/>
<validator name="stringlength" class="com.opensymphony.xwork2.validator.validators.StringLengthFieldValidator"/>
. . .
</validators>
Ici est TestAction-validation.xml
:
<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//EN"
"http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
<validators>
<field name="testInt">
<field-validator type="int">
<param name="min">0</param>
<param name="max">9</param>
<message>Number not in range</message>
</field-validator>
</field>
<field name="testString">
<field-validator type="stringlength">
<param name="minLength">4</param>
<message>String not long enough.</message>
</field-validator>
</field>
</validators>
Mon struts.xml
s'étend struts-default
, et j'ai un très simple action de classe TestAction
qui s'étend ActionSupport
et a des champs testInt
et testString
.
De ce que j'ai lu, cela devrait être suffisant pour les jambes de suspension pour vérifier les valeurs saisies, mais il n'est pas le cas. Ce qui me manque?
OriginalL'auteur Eric Wilson | 2010-02-19
Vous devez vous connecter pour publier un commentaire.
Vous avez deux choix, valider par modèle ou par action. Afin de valider au niveau de l'Action, il vous suffit de créer un fichier qui prend le nom de {votre action}-validation.xml et le placer dans le même package que la classe d'Action. Afin de valider au niveau du modèle, vous devez créer un fichier similaire qui prend le nom de l'objet modèle alors directs de votre Action de validation du fichier à valider par les règles dans le modèle de validation de fichier. (Référence)
Mettre validation.xml de la racine de vos fichiers source java (package par défaut) et de mettre TestAction-validation.xml dans le même répertoire où se trouve votre TestAction.java fichier se trouve. La plupart des IDE de la copie automatiquement toutes les ressources respectives répertoire où le fichier de la classe sera généré.
Mise à jour:
http://struts.apache.org/2.x/docs/validation.html
Comment les Validateurs d'une Action est Trouvé
<s:fielderror>
dans ma JSP.Vous êtes les bienvenus... YaaaaHoooo il a travaillé 🙂
Les liens ne fonctionnent pas
OriginalL'auteur Gladwin Burboz
Peut-être parce que la dtd définition
http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd
n'est plus là
Sur struts2 démarrage j'obtiens cette exception et ma validation intercepteurs ne fonctionnent plus
<!DOCTYPE validators PUBLIC "-//Apache Struts//XWork Validator 1.0.3//EN" "http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd">
OriginalL'auteur fustaki
Remplacer la
"
<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//EN" "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
"avec la nouvelle DTD
C'est la solution , cela va fonctionner.
A fonctionné pour moi ! Merci !
OriginalL'auteur Venkata Naresh Babu
Il pourrait être une couple de choses du haut de ma tête.
1) Êtes-vous d'utiliser la valeur par défaut de l'intercepteur de pile, cette pile a une validation de l'intercepteur qui est nécessaire pour la validation de travailler, sinon, vous devez spécifier la validation de l'intercepteur manuellement dans votre pile.
2) TestAction-validation.xml doit être sous WEB-INF/classes/[package] donc, si l'action est com.foo.TestAction alors TestAction-validation.xml doit être sous WEB-INF/classes/com/foo/TestAction-validation.xml
3) Essayez d'utiliser le nom de la méthode à laquelle vous soumettez dans le TestAction classe dans le nom du validateur xml fichier. Vous pouvez avoir TestAction-[method_to_be_validated]-validation.xml
Espère que ça aide!
OriginalL'auteur garyj