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 :

génération d'erreurs sous struts


Sujet :

Struts 1 Java

  1. #1
    Futur Membre du Club
    Inscrit en
    Juillet 2008
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 4
    Points : 6
    Points
    6
    Par défaut génération d'erreurs sous struts
    je travaille avec netbeans 6.0 ss le framework struts.
    ds ma jsp acceuil.jsp,je fais un formulaire.lorsque les champs saisis sont faux(ne respectent pas une expression régulière),des msg d'erreus sont affichés mé le pb est que tous les champs saisis sont effacés alors que je vx que les champs faux seulements sont effacés.

  2. #2
    Membre éclairé 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
    Points : 672
    Points
    672
    Par défaut
    La technique pour conserver les valeurs saisies est de remettre les valeurs bonnes dans les variables présentes dans ton ActionForm.

  3. #3
    Membre éclairé 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
    Points : 672
    Points
    672
    Par défaut
    Citation Envoyé par yahyanaoui
    jé pa compri,s'il vs plait un exemple pour mieux comprendre.
    Merci beaucoup pour votre aide.
    Imaginons une classe toute simple,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    public class PersonneForm extends ActionForm { 
        private String nom;
     
        public String getNom() { 
            return this.nom; 
        } 
     
        public void setNom(String nom) { 
            this.nom = nom; 
        }
    }
    Dans ta classe action, et plus particulièrement dans la méthode execute:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    public ActionForward execute(ActionMapping mapping, ActionForm form,
    	    HttpServletRequest request, HttpServletResponse response) {
    	PersonneForm formulaire = (PersonneForm) form;
    	formulaire.setNom("toto");
    	return mapping.findForward("success");
        }
    Si pour cette action, le forward "success" redirige vers ton formulaire, dans le champs nom, il y aura écrit toto quand tu arriveras sur la page.

    Bien, donc maintenant, on étend l'idée à ton besoin. Une solution peut etre de remettre dans les setter les valeurs qui sont considérées comme bonnes.

    Après, je sais pas si tu connais le validator disponible avec struts, mais il me semble qu'il gère ca! à tester...

  4. #4
    Membre éclairé 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
    Points : 672
    Points
    672
    Par défaut
    Citation Envoyé par yahyanaoui
    supposons qu'on a un autre attribut ds cette classe intitulé prenom et on a un formulaire pr saisir des valeurs aux 2 champs.pr chaque champ on a mi une expression régulière.supposons qu'on a saisi l'un vrai et l'autre faux,alors un erreur s'affiche pr annoncer cet erreur.mon pb est que je veux que le champ vrai ne s'efface pa alors que le champ faux s'efface en indiquant un msg d'erreur.
    merci bcq.
    Bien, donc déjà, il faut arrêter de me répondre en privé, il y a un post d'ouvert pour ca Ne cherches pas une logique dans mon exemple, j'ai fait ca vite fait sans chercher une cohérence avec la réalité.

    Bon alors, je vais te donner un exemple complet pour que tu vois bien la technique.

    Mon actionForm, je défini la méthode validate dans laquelle je cherche les erreurs, si erreur alors message + suppression des valeurs du champs.
    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    package com.struts.data;
    
    import javax.servlet.http.HttpServletRequest;
    
    import org.apache.struts.action.ActionErrors;
    import org.apache.struts.action.ActionForm;
    import org.apache.struts.action.ActionMapping;
    import org.apache.struts.action.ActionMessage;
    
    public class PersonnelForm extends ActionForm {
        private String nomPersonnel;
        private String dateNaissance;
    
    
        public String getNomPersonnel() {
        return nomPersonnel;
        }
    
        public void setNomPersonnel(String nomPersonnel) {
        this.nomPersonnel = nomPersonnel;
        }
    
        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;
        }
    }
    Le struts-config, je dis que lorsque mon action est lancée, je veux activer la méthode validate du form. Je précise qu'il y a un properties où se trouveront les messages d'erreurs:
    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
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <!DOCTYPE struts-config 
    PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.0//EN" 
    "http://jakarta.apache.org/struts/dtds/struts-config_1_3.dtd">
    <struts-config>
        <form-beans type="org.apache.struts.action.ActionFormBean">
            <form-bean name="personnelForm" type="com.struts.data.PersonnelForm" />
        </form-beans>
        <action-mappings type="org.apache.struts.action.ActionMapping">
            <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>
        </action-mappings>
        <message-resources parameter="MessageResources" />
    </struts-config>
    Ma jsp, j'active l'affichage des erreurs avec le <html:errors>:
    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    <%@ page language="java" %>
    <%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>
    <%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
    <%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic" %>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html:html>
      <head>
        <title>Ajout</title>
        <html:base/>
      </head>
      <body bgcolor="white">
        <html:form action="personnel" focus="nomPersonnel">
          <table border="0" align="center">
          
            <tr>
              <td align="right">
                Nom :
              </td>
              <td align="left">
                <html:text property="nomPersonnel" size="20" maxlength="20"/>
              </td>
            </tr>
            
            <tr>
              <td align="right">
                Date de naissance (dd-mm-yyyy) :
              </td>
              <td align="left">
                <html:text property="dateNaissance" size="20" maxlength="20"/><html:errors property="naissance"/>
              </td>
            </tr>  
            
            <tr>
              <td align="right">
                <html:submit property="submit" value="Submit"/>
              </td>
              <td align="left">
                <html:reset/>
              </td>
            </tr>
            
          </table>
        </html:form>
      </body>
    </html:html>
    Le properties:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    dateNaissance.vide=La date de naissance est obligatoire
    dateNaissance.manque=La date de naissance doit faire 10 caractères

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

Discussions similaires

  1. Erreur sous PHP MyAdmin (PMA database?)
    Par Matlight dans le forum Installation
    Réponses: 5
    Dernier message: 28/10/2010, 19h38
  2. Une erreur lors de la génération du wsdl sous eclipse
    Par amalamal dans le forum Services Web
    Réponses: 0
    Dernier message: 09/04/2009, 11h49
  3. message d'erreur sous l'utilitaire IBconsole
    Par vbcasimir dans le forum Outils
    Réponses: 6
    Dernier message: 05/01/2005, 12h07
  4. découvrir les erreurs sous Mozilla
    Par rabobsky dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 18/12/2004, 20h51
  5. Personnaliser un rapport d'erreur sous Windows XP
    Par Neilos dans le forum Windows
    Réponses: 5
    Dernier message: 21/11/2003, 18h13

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