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 :

Problème avec les messages (ActionMessage(s)) [FAQ]


Sujet :

Struts 1 Java

  1. #1
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut Problème avec les messages (ActionMessage(s))
    Bonjour,

    J'avoue être newbie en la matière bien charpentée de Struts, alors je ne m'étonne pas de rencontrer un pb, mais là, j'ai du mal à voir ce qu'il se passe.

    J'essaie de définir un message dans une Action et de les afficher dans une JSP. Ca n'a pas l'air bien compliqué mais pourtant, je n'y arrive pas : j'ai une jolie erreur "javax.servlet.jsp.JspException: Cannot find message resources under key org.apache.struts.action.MESSAGE".

    Action :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ActionMessage message = new ActionMessage("error.publicAccess");
    ActionMessages messages = new ActionMessages();
    messages.add("changePassword", message);
    saveMessages(request, messages);
    return mapping.findForward("unauthorized");
    JSP :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html"%>
    <html:messages id="message" message="true" />
    Après vérification, le saveMessages() sauve mes messages en attribut de requête, alors que le tag <html:messages> essaie de les récupérer dans le contexte de la page. Du coup, je trouve mon erreur vachement normale. Alors c'est quoi le pb ? Pourquoi j'arrive pas à récupérer ces !?#$!!! de message ?

    Au fait, j'utilise Struts 1.1... Désolé, mais j'ai pas le choix.

    Merci pour votre aide.

    Du détail, du détail, du détail !!!
    Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute

  2. #2
    Membre à l'essai
    Inscrit en
    Mai 2006
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 16
    Points : 18
    Points
    18
    Par défaut
    Bonjour,

    Tu l'as peut être et tu as oublié de le citer, mais il te faut un fichier .properties pour associer error.publicAcces a son message exact.

  3. #3
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    CA c'est bon, je l'ai : quand je fais un <bean:message key="error.publicAccess" bundle="bundle1"/>, j'ai mon message qui s'affiche bien.

    Du détail, du détail, du détail !!!
    Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute

  4. #4
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    A propos de l'histoire "attribut de requete vs. attribut de pageContext", j'ai testé la chose suivante dan la JSP :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    request.getAttribute("org.apache.struts.action.MESSAGE")
    Renvoie qqch

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    pageContext.findAttribute("org.apache.struts.action.MESSAGE")
    Renvoie null.

    Si vous avez une idée.

    Du détail, du détail, du détail !!!
    Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute

  5. #5
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    Ca marche si j'ajoute ça dans web.xml :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        <init-param>
          <param-name>application</param-name>
          <param-value>com.toto.ApplicationResources</param-value>
        </init-param>
    Mais c'est pourri car on ne peut définir ainsi qu'un seul bundle et j'ai besoin d'en utiliser plusieurs. Y a moyen de s'en sortir autrement ?

    Du détail, du détail, du détail !!!
    Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute

  6. #6
    Expert éminent sénior


    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    7 856
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 7 856
    Points : 34 380
    Points
    34 380
    Par défaut
    Citation Envoyé par _Mac_
    Mais c'est pourri car on ne peut définir ainsi qu'un seul bundle et j'ai besoin d'en utiliser plusieurs. Y a moyen de s'en sortir autrement ?
    Par exemple : http://java.developpez.com/faq/strut...usieursrbundle

  7. #7
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    Merci, mais c'est pas tout à fait ce que je veux faire : j'ai plusieurs "applications" différentes dans mon WAR qui utilisent différents bundles (un par appli). Une même clé peut donc exister dans différents bundles. Ce n'est pas de l'aggrégation de bundles que je veux faire mais accéder aux différents bundles indépendamment.

    La question, par rapport à ce que j'ai pu voir, c'est pourquoi la méthode pageContext.findAttribute() renvoie null lorsque je n'ai pas défini de paramètre d'init de servlet ? C'est un bug de mon serveur d'appli, de Struts ? Est-ce le comportement attendu ?

    Du détail, du détail, du détail !!!
    Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute

  8. #8
    Membre expérimenté Avatar de maxf1
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 229
    Points : 1 371
    Points
    1 371
    Par défaut
    Citation Envoyé par _Mac_
    Ca marche si j'ajoute ça dans web.xml :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        <init-param>
          <param-name>application</param-name>
          <param-value>com.toto.ApplicationResources</param-value>
        </init-param>
    Mais c'est pourri car on ne peut définir ainsi qu'un seul bundle et j'ai besoin d'en utiliser plusieurs. Y a moyen de s'en sortir autrement ?


    Pour definir plusieurs bundle ca ca marche mais dans struts-config :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <message-resources parameter="ErrorResources" null="false" key="ERROR_KEY" />
    <message-resources parameter="ApplicationResources" null="false" key="APPLICATION_KEY"/>
    Une solution a été apporté pour résoudre votre problème alors vous aussi faites en profitez les autres grâce au tag qui se trouve tout en bas de la page....

    Merci de ne pas utiliser les messages privés pour un problème sauf si je vous l'ai explicitement demandé.

    -- Maxf1 --

Discussions similaires

  1. Réponses: 7
    Dernier message: 03/01/2012, 17h47
  2. [Séquence] probléme avec les message
    Par rwikus09 dans le forum Autres Diagrammes
    Réponses: 1
    Dernier message: 15/12/2009, 17h05
  3. Struts 2 - problème avec les messages de validation
    Par Aemaeth13 dans le forum Struts 2
    Réponses: 4
    Dernier message: 17/08/2009, 16h41
  4. Problème avec les messages d'erreur.
    Par gaet_045 dans le forum JSF
    Réponses: 1
    Dernier message: 01/05/2007, 15h47
  5. []Problème avec les formulaires Outlook
    Par davidinfo dans le forum Outlook
    Réponses: 6
    Dernier message: 05/12/2002, 09h59

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