2009-02-05 7 views
0

J'ai démarré une application web en utilisant des entretoises 2. Apache tomcat 6.0 est mon serveur web. Il est clair pour moi que nous pouvons valider les données en utilisant l'action validation.xml comme mon login-validation.xml est -action-validation.xml dans struts 2

<validators> <field name="username"> <field-validator type="requiredstring"> <message>Login name is required</message> </field-validator> </field> </validators>

Mais il est uniquement pour les types prédéfinis comme requiredstring, int , email etc. Si je veux que ce nom d'utilisateur doit avoir un caractère par exemple '*' alors comment pouvons-nous réaliser ce type de validation dans les entretoises 2.

Et aussi dites-moi ce que j'ai expliqué ci-dessus est une validation côté serveur ou validation côté client.

Répondre

0

Pour le nom d'utilisateur, il existe plusieurs façons de l'approcher.

Vous pouvez utiliser le validateur intégré fieldexpression et lui donner une expression régulière pour correspondre aux caractères de nom d'utilisateur requis.

Vous pouvez simplement valider le nom d'utilisateur entrant dans l'action et ajouter une erreur de champ si la validation échoue.

Ce qui précède sont des validations côté serveur. Pour quelque chose d'aussi simple que d'exiger des caractères spéciaux dans un nom d'utilisateur, la validation JavaScript côté client serait probablement la plus facile.

1

Pour votre cas, je pense que le regex Validor fonctionne pour votre problème:

<validators> 

    <field name="username"> 
    <field-validator type="requiredstring"> 
    <message>Login name is required</message> 
    </field-validator> 

     <field-validator type="regex"> 
      <param name="expression"><![CDATA[(.*\*.*)]]></param> 
     <message>Login name must contain a *</message> 
     </field-validator> 
    </field> 

</validators> 

Si les validateurs intégrés ne peuvent pas satisfaire vos besoins, vous pouvez également écrire votre validateur personnalisé.