2010-02-22 5 views
0

J'utilise commons-validator v1.2 spécification-version: 1.0 alors que ma spéc-version pour struts est: 1.1. Bien que tout fonctionne bien, sauf l'affichage du message dans la boîte d'alerte. La vitrine de la boîte d'alerte est pertinente.Struts validateur côté client, alertbox sans message

Par exemple ce champ jsp:

<td class="RechBlocCiel"> 
    <input name="nom" type="text" class="inputForm" size="2" maxlength="50" /> 
</td> 

Je mis en validation.xml:

<field property="nom" depends="required"> 
<msg name="required" key="error.nom" /> 
</field> 

liés à

<validator name="required" 
classname="org.apache.struts.validator.FieldChecks" 
method="validateRequired" 
methodParams="java.lang.Object, 
    org.apache.commons.validator.ValidatorAction, 
    org.apache.commons.validator.Field, 
    org.apache.struts.action.ActionMessages, 
    javax.servlet.http.HttpServletRequest" 
msg="errors.required" /> 

et configuration Struts le plug-in est déclaré:

<plug-in className="org.apache.struts.validator.ValidatorPlugIn"> 
<set-property property="pathnames" 
    value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml" /> 
</plug-in> 
<message-resources 
parameter="xxx.resources.ApplicationResources" /> 

En xxx.resources.ApplicationResources j'ai le fichier de propriétés: ApplicationResources.properties qui contient:

errors.required = <li> Le champ [{0}] est obligatoire.</li> 
error.nom = nom 

Il me semble que tout est terminé, donc je ne suis pas sûr où chercher maintenant, à l'exception dans un problème de version entre validator et struts. Je cherche le message: "Le champ nom est obligatoire."

Répondre

0

réponse définitive:

je avais besoin d'utiliser la balise STRUTS: html: texte, etc. pour bénéfice de ce mécanisme.

Ensuite, je modifie les règles de validation:

<field property="nom" depends="required"> 
    <arg0 key="error.nom"/> 
</field> 

Et il fonctionne très bien!

0

ajouter depends = "" à

<validator name="required" 
classname="org.apache.struts.validator.FieldChecks" 
method="validateRequired" 
methodParams="java.lang.Object, 
    org.apache.commons.validator.ValidatorAction, 
    org.apache.commons.validator.Field, 
    org.apache.struts.action.ActionMessages, 
    javax.servlet.http.HttpServletRequest" 
depends="" msg="errors.required" /> 

le message de error.nom apparaît dans la zone d'alerte. Je ne résous pas le problème complètement encore, mais au moins il fonctionne avec

error.nom = Le champ nom est obligatoire. 

Bien que ce n'est pas solutino générique pour tous mes champs de formulaire requis. Au lieu d'ajouter le nom du champ au message générique je de redondance « Le champion » « est obligatoire » dans mes .properties