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

Servlets/JSP Java Discussion :

gestion des erreurs : comment savoir dans la jsp si le tag erreur est non vide ?


Sujet :

Servlets/JSP Java

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    372
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 372
    Points : 239
    Points
    239
    Par défaut gestion des erreurs : comment savoir dans la jsp si le tag erreur est non vide ?
    Salut à tous

    Voilà, je me trouve face à un souci lors d'un portage technique de mon appli.
    J'ai une page ave c un formulaire à soumettre. Une erreur est affichée dans la page de saisie lors de la soumission du form si celui ci est mal saisi ... jusque la pas de problème.

    Avant, la page saisie.jsp (contenant le formulaire) était affichée.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <body>
    <div id="form">
    <html:form action="/monAction">
    <html:text property="property1"/>
    <html:text property="property2"/>
    <html:text property="property3"/>
    </html:form>
    </div>
    </body>
    Lors de la soumission, en cas d'erreur dans la saisie du form on renvoyait une page saisieErreur.jsp, les erreur ayant été settées dans un bean session :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <jsp:useBean id="erreurBean" class="" scope="request"/>
    ...
    ...
    <body>
    <div id="Bandeau_Erreur">
    <h1><%=erreurBean.getTextErreur()%></h1>
    </div>
    <div id="Bandeau_Erreur">
    <p><%@include file="saisie.jsp"%></p>
    </div>
    </body>
    maintenant ma jsp de saisie est la suivante :
    Avant, la page saisie.jsp (contenant le formulaire) était affichée.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <body>
    <html:error property="propety erreur a afficher bundle="monBundleErreur""/>
    <div id="form">
    <html:form action="/monAction">
    <html:text property="property1"/>
    <html:text property="property2"/>
    <html:text property="property3"/>
    </html:form>
    </div>
    </body>
    l'utilisation du id="Bandeau_Erreur" permettait de définir un style donné pour la page d'eereur. mais dorénavant, la page squi est retournée en cas d'erreur est la page saisie.jsp, le tag html:erreur permettant d'afficher les erreurs.
    Le seul hic c'est que j'aurais besoin de faire un truc comme cela :
    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
    <body>
    <% si le tag html:erreur est non vide %>
    <div id="Bandeau_Erreur">
    <% fin si%>
    <html:error property="propety erreur a afficher bundle="monBundleErreur""/>
    <div id="form">
    <html:form action="/monAction">
    <html:text property="property1"/>
    <html:text property="property2"/>
    <html:text property="property3"/>
    </html:form>
    </div>
    <% si le tag html:erreur est non vide %>
    </div>
    <% fin si%>
    </body>
    (avec les tags jsp bien sur, mais la n'est pas le problème).
    J'ai donc essayé de voir si les erreurs n'étaient pas par hasard dans un attribut de session ou de requête mais visible ment ce n'est pas le cas. Pour voir ca j'ai fais la chose suivante :
    dans ma jsp j'ai ajouté en début de page :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <% java.util.Enumeration e1 = session.getAttributeNames();
    java.util.Enumeration e2 = request.getParameterNames();
    System.out.println("attributs de session :");
    while(e1.hasMoreElements()){
    System.out.println(e1.nextElement());
    }
    System.out.println("attributs de request :");
    while(e2.hasMoreElements()){
    System.out.println(e2.nextElement());
    }
    %>
    Mais je n'ai rien vu comme nom d'attribut qui ne soit pas des attributs que j'ai setté moi meme....

    Une idée plus précise de comment ca fonctionne exactement : comment juste avec le tag html:errors on peut récupérer les erreurs que l'on a sauvé dans la requête par un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(!errors.isEmty()){saveErrors(request, errors);}
    ...?

    Elles sont bien transmises par quelque chose les erreurs.... elles vont pas être récupérées par l'opération du saint esprit...?
    N'oubliez pas que l'eau ça rouille !
    est votre ami !

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    442
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 442
    Points : 540
    Points
    540
    Par défaut
    Hello !

    Ca a l'air assez compliqué à suivre...

    J'ai juste une petite observation :

    Recherche plutôt dans request.getAttributeNames() que dans les paramètres HTTP request.getParameterNames().

  3. #3
    Membre averti

    Profil pro
    Inscrit en
    Mars 2007
    Messages
    392
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 392
    Points : 439
    Points
    439
    Par défaut
    salut,
    tu peux regarder dans "Participez à la FAQ Struts", j'avais mis une solution à ce pb ;-)
    de mémoire, j'avais implémenté la 3ème solution : taglib!

    a+
    Matthieu

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    372
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 372
    Points : 239
    Points
    239
    Par défaut
    Bon, en effet le request.getAttributeNames m'a permis de voir que lorsque on a des erreur, elle sont mises par Struts dans un attribut nommé org.apache.strtuts.action.ERORR :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <% java.util.Enumeration e1 = request.getAttributeNames();
    System.out.println("attributs de request:");
    while(e1.hasMoreElements()){
    System.out.println(e1.nextElement());
    }
    %>
    Je vais donc pouvoir gérer tout ca en tag jsp pour tester si dan sla liste des attributs de requête on en a un qui s'appelle org.apache.strtuts.action.EROR, et qui contient des éléments...

    merci pour votre aide

    A+
    N'oubliez pas que l'eau ça rouille !
    est votre ami !

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

Discussions similaires

  1. Gestion des changement de JPanel dans une applet
    Par le Daoud dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 26/06/2006, 14h32
  2. Réponses: 1
    Dernier message: 20/03/2006, 13h30
  3. Gestion des versions d'objets dans les SGBD
    Par bennus dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 09/05/2005, 12h57

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