IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Struts 1 Java Discussion :

validation d'un formulaire avec la methode validate


Sujet :

Struts 1 Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Octobre 2007
    Messages
    160
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 160
    Par défaut validation d'un formulaire avec la methode validate
    salut tout le monde,
    pour valider les champs d'un formulaire j'utilise la methode validate dans l'ActionForm, tout parrait bien fait (en fait je suivais un tutorial) mais bizarrement ça marche pas,
    voilà le code dans l'submitForm
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     public ActionErrors validate(ActionMapping mapping,
    		  HttpServletRequest request) {
     
     
     
    		  // Check for mandatory data
    		  ActionErrors errors = new ActionErrors();
    		  if (lastName == null || lastName.equals("")) {
    		  errors.add("Last Name", new ActionMessage("error.lastName"));
    		  }
    		  if (address == null || address.equals("")) {
    		  errors.add("Address", new ActionMessage("error.address"));
    		  }
    		  if (sex == null || sex.equals("")) {
    		  errors.add("Sex", new ActionMessage("error.sex"));
    		  }
    		  if (age == null || age.equals("")) {
    		  errors.add("Age", new ActionMessage("error.age"));
    		  }
    		  return errors;
     
    		  }
    et dans le struts-config:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <action path="/submit"
     type="submit.SubmitAction"
     name="submitForm"
     input="/submit.jsp"
     scope="request"
     validate="true">
     <forward name="failure" path="/errors.jsp"/>
     <forward name="success" path="/submit.jsp"/>
     </action>
    et dans le submit.jsp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <html:errors/>
     
     <html:form action="submit.do">
     Last Name: <html:text property="lastName"/><br>
     First Name: <html:text property="firstName"/><br>
     Address: <html:textarea property="address"/><br>
     Sex: <html:radio property="sex" value="M"/>Male
     <html:radio property="sex" value="F"/>Female<br>
     
     Age: <html:select property="age">
     <html:option value="a">0-19</html:option>
     <html:option value="b">20-49</html:option>
     <html:option value="c">50-</html:option>
     </html:select><br>
     <html:submit/>
     </html:form>
    et je reçois ce message d'erreur;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    org.apache.jasper.JasperException: Cannot find message resources under key org.apache.struts.action.MESSAGE
    	org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:460)
    	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:355)
    ....................

    Est ce que vous avez une idée, moi de ma part j'arrête pas à chercher..

    Merci beaucoup d'avance

  2. #2
    Membre émérite Avatar de zorm
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    584
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 584
    Par défaut
    As tu défini le fichier .properties qui contient tous les messages à afficher?

    C'est à dire dans ton struts-config, as tu bien la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <message-resources parameter="MessageResources"/>
    Et donc un fichier du genre MessageResources_fr_FR.properties qui contient tes commentaires:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    error.lastName=Nom obligatoire
    error.address=...
    ...

  3. #3
    Membre confirmé
    Inscrit en
    Octobre 2007
    Messages
    160
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 160
    Par défaut
    Merci pour votre rèponse assez rapide
    Non,
    je le fait tout de suite et je vous mets au courant

    à toute de suite

  4. #4
    Membre confirmé
    Inscrit en
    Octobre 2007
    Messages
    160
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 160
    Par défaut
    salut,
    ça marche pas
    En fait au debut j'avait un nouveau message d'erreur: ActionMessage can not be casting actionError, alors j'ai changé le ActionMessage par ActionError, et depuis j'ai aucun message d'erreur mais aussi il fait pas la validation du formulaire, puisque je laisse mes champs vides et j'ai aucun message d'erreurs qui s'affiche,

    Est ce que vous avez une idée?

  5. #5
    Membre confirmé
    Inscrit en
    Octobre 2007
    Messages
    160
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 160
    Par défaut
    excusez moi, je me suis trompé!
    en fait il fait la validation mais j'au aucun message d'avertissement(pour dire que ce champ est obligatoire) qui s'affiche.
    poutant j'ai mis dans mon fichier jsp
    et même avec ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <html:errors property="firstName"/>
    ça marche pas

    merci

  6. #6
    Membre émérite Avatar de zorm
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    584
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 584
    Par défaut
    Je vais donner un exemple très très simplifié de la chose.

    J'ai un Form où je vérifie si la date de naissance à été rempli ou si elle fait bien 10 caractères:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    public class PersonnelForm extends ActionForm { 
        private String dateNaissance; 
       
        public String getDateNaissance() { 
        return dateNaissance; 
        } 
     
        public void setDateNaissance(String dateNaissance) { 
        this.dateNaissance = dateNaissance; 
        } 
     
        public ActionErrors validate(ActionMapping mapping, HttpServletRequest request) { 
        ActionErrors errors = new ActionErrors(); 
        if ((this.dateNaissance == null) || (this.dateNaissance.length() == 0)) { 
            errors.add("naissance", new ActionMessage("dateNaissance.vide")); 
        } else if (this.dateNaissance.length() != 10) { 
            errors.add("naissance", new ActionMessage("dateNaissance.manque")); 
            this.dateNaissance = null; 
        } 
        return errors; 
        } 
    }
    Mon fichier de properties se trouve dans WebContent/WEB-INF/classes/ et contient:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    dateNaissance.vide=La date de naissance est obligatoire
    dateNaissance.manque=La date de naissance doit faire 10 caractères
    dans le struts-config, j'ai donc toujours le :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        <message-resources parameter="MessageResources" />
    Et donc dans ma JSP, j'aurai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <tr> 
              <td align="right"> 
                Date de naissance (dd-mm-yyyy) : 
              </td> 
              <td align="left"> 
                <html:text property="dateNaissance" size="20" maxlength="10"/>
              </td> 
              <td align="left"> 
                  <html:errors property="naissance"/> 
              </td> 
            </tr>
    Les couleurs sont là pour montrer les associations de nom à bien respecter lors de la définition des validations

    EDIT: dans le struts-config, je dis qu'il y a de la validation à faire ainsi:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <action path="/personnel" input="/personnel_form.jsp" scope="request" 
                name="personnelForm" type="com.struts.controleur.AjoutPersAction" 
                validate="true"> 
                <forward name="succes" path="/personnel_succes.jsp" redirect="false" /> 
                <forward name="echec" path="/personnel_form.jsp" redirect="false" /> 
            </action>

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 16
    Dernier message: 12/05/2010, 22h28
  2. [MySQL] formulaire avec lien de validation
    Par emmy99 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 19/02/2008, 11h15
  3. Réponses: 1
    Dernier message: 21/05/2007, 19h57
  4. Réponses: 6
    Dernier message: 03/04/2006, 09h42
  5. [Struts] Problème avec la méthode validate
    Par clement42 dans le forum Struts 1
    Réponses: 2
    Dernier message: 09/06/2005, 10h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo