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 :

Configuration des message bundles utilisés par struts


Sujet :

Struts 1 Java

  1. #1
    Membre à l'essai
    Inscrit en
    Février 2010
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 17
    Points : 17
    Points
    17
    Par défaut Configuration des message bundles utilisés par struts
    Bonjour,

    je bosse depuis un certain temps sur un projet struts 1.3, et depuis que j'ai plus de temps j'essaie de tirer un peu plus partie de la puissance de ce framework (l'utilisation que nous en faisons étant relativement basique)

    Donc j'ai mis en place un petit error handler global dans mon struts-config qui attrape les erreurs axis (pour commencer) et les redirige dans une petite jsp.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <global-exceptions>
    	    <exception  type="org.apache.axis.AxisFault"
    	    		key="errors.ws.gen" 
    	    		bundle="javax.servlet.jsp.jstl.fmt.localizationContext"
    	    		path="/WEB-INF/jsp/error.jsp"/>
    </global-exceptions>
    notez l'attribut "bundle" qui est ma tentative misérable de piocher les message dans le localizationContext qui est défini dans le web.xml sous cette forme

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <context-param>
        	<param-name>javax.servlet.jsp.jstl.fmt.localizationContext</param-name>
        	<param-value>messages</param-value>
    </context-param>
    J'essaie ensuite d'insérer le message via la balise <html:errors /> et là je reçois l'erreur "Cannot find message resources under key org.apache.struts.action.MESSAGE".

    Cela fonctionne en définissant simplement "message-resources" dans le struts-config. Il ignore complètement mon pauvre attribut bundle, et pioche son message comme si de rien n'était.

    Ma question est donc : Comment faire en sorte que les messages de struts soient pris dans le contexte de localisation ? Ça ne m'embête pas trop de rajouter une ligne dans un fichier de conf, mais lorsque l'on change la locale je doute que struts répercute ces changements. Ça doit surement être très bête comme solution ...

    Merci d'avance!

  2. #2
    Membre confirmé

    Inscrit en
    Juin 2005
    Messages
    1 155
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 1 155
    Points : 475
    Points
    475
    Par défaut
    La balise n'a d'utilité selon toute vraisemblance que lorsque tu retourn un objet ActionErrors non null et non vide à ta jsp, voir ici par exemple pour plus de détails.

  3. #3
    Membre à l'essai
    Inscrit en
    Février 2010
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 17
    Points : 17
    Points
    17
    Par défaut
    Exact, c'est un fonctionnement que je découvre un peu merci pour ce lien

    Par contre dans mon cas d'utilisation la balise fonctionne. En fait lorsque l'on déclare la redirection des exceptions dans le xml de config, struts passe deux choses à la JSP définie dans path :
    - L'exception en elle-même, en attribut de la requête
    - Le message récupéré dans le bundle de ressources à l'attribut key. Je suppose qu'il utilise le mécanisme d'ActionError, en tout cas cela fonctionne avec la balise <html:errors/>

    Résultat mon message apparaît correctement. Le seul hic c'est que je voudrais que struts utilise le bundle qui est déjà défini comme localizationContext

  4. #4
    Membre confirmé

    Inscrit en
    Juin 2005
    Messages
    1 155
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 1 155
    Points : 475
    Points
    475
    Par défaut
    la balise dispose d'un attribut ...

  5. #5
    Membre à l'essai
    Inscrit en
    Février 2010
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 17
    Points : 17
    Points
    17
    Par défaut
    Tout à fait, mais je crois qu'il est plutôt utilisé dans le cas où l'on définit plusieurs bundles dans la conf (un pour les erreurs, un pour les messages normaux, etc). J'ai essayé de le faire pointer sur le localisationContext à tout hasard mais ça serait trop beau ! (et ça provoque carrément une JspException: Cannot find message resources under key ...)

    Attention je n'ai aucun mal à imaginer que la solution soit très simple En gros je cherche à avoir la même réponse produite par les deux tags:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <fmt:message key="ma.clef"/>
    <html:errors />
    lorsque le message d'erreur passée à la jsp est "ma.clef". Actuellement j'arrive à avoir le fmt en anglais et le html en français après passage de la locale à "en" (même en précisant locale="en" dans la balise html:errors).

Discussions similaires

  1. à propos des .dll .ocx utilisés par un programme VB6
    Par HRS dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 22/11/2012, 14h34
  2. Réponses: 4
    Dernier message: 30/06/2010, 22h32
  3. Réponses: 1
    Dernier message: 03/12/2008, 18h50
  4. Configurer des options de VBE par macro
    Par nawake dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 11/02/2008, 12h25
  5. Affichage des message d'erreurs avec Struts
    Par stujava dans le forum Struts 1
    Réponses: 4
    Dernier message: 13/08/2007, 22h12

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