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 :

[Struts]Struts et l'internationalisation


Sujet :

Struts 1 Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur

    Avatar de Mickael Baron
    Homme Profil pro
    Ingénieur de Recherche en Informatique
    Inscrit en
    Juillet 2005
    Messages
    14 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur de Recherche en Informatique
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2005
    Messages : 14 974
    Par défaut [Struts]Struts et l'internationalisation
    Bonjour à tous,

    Je me heurte actuellement à un problème avec Struts pour l'internationalisation COMPLETE de mon application WEB.

    En fait je souhaiterais pouvoir changer de langue facilement dans mon application. Seulement je n'arrive pas à choisir le langage des ActionErrors que je construits dans mes ActionForm's. Le langage est toujours le français.

    Fonctionnant à l'exemple j'ai tenté de réaliser la même chose que l'exemple proposé dans la FAQ de Struts (http://java.developpez.com/faq/strut...resourcebundle) concernant des messages que l'on pouvait ajouter pendant le traitement de l'action. Pas de problème pour le retour des Actions mais les erreurs sont toujours en Français?

    Rien n'y fait.
    Voilà mon problème, j'espère que j'ai été clair.

    J'ai juste une petite question à deux sous. La combinaison de JSTL et de Struts est-elle envisageable. Si oui comment s'intègre l'internationnalisation de l'un avec l'autre.

    Merci de votre aide.
    Responsable Java de Developpez.com (Twitter et Facebook)
    Besoin d"un article/tutoriel/cours sur Java, consulter la page cours
    N'hésitez pas à consulter la FAQ Java et à poser vos questions sur les forums d'entraide Java
    --------
    Ingénieur de Recherche en informatique au LIAS / ISAE-ENSMA
    Page de Developpez.com : mbaron.developpez.com
    Twitter : www.twitter.com/mickaelbaron
    Blog : mickael-baron.fr
    LinkedIn : www.linkedin.com/in/mickaelbaron
    DBLP : dblp.uni-trier.de/pers/hd/b/Baron:Micka=euml=l

  2. #2
    Membre confirmé
    Inscrit en
    Juillet 2005
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 31
    Par défaut
    j'ai pas bien compris ton probleme avec l'internationalisation en struts

    Et pour repondre a ta deuxieme question, personnellement j'ai deja deja fait, voila un petit exemple, imagine que t'itère une collection maListe en struts:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
    <logic:iterate name="maList" id="element" scope="page">
     <c:out value="<%= pageContext.getAttribute("element") %>"/>
     <%-- ou alors en EL --%>
     <c:out value="${pageContext.element}"/>
    </logic:iterate>
    Bon c'est un peu barbare comme solution mais c'est la seule qui m'est venu a l'esprit

    Sinon hors des boucles il faudrait passer par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     <bean:define id="element" name="monBean" property="maPropriete"/>
     <c:out value="<%= pageContext.getAttribute("element") %>"/>
     <%-- ou alors en EL --%>
     <c:out value="${pageContext.element}"/>
    Evidemment en faisant un c:out je suppose que ce sont de chaines (type java.lang.String) que j'ai dans ma collection ou dans ma propritété de bean

  3. #3
    Rédacteur

    Avatar de Mickael Baron
    Homme Profil pro
    Ingénieur de Recherche en Informatique
    Inscrit en
    Juillet 2005
    Messages
    14 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur de Recherche en Informatique
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2005
    Messages : 14 974
    Par défaut Struts et JSTL
    Merci pour ta réponse.

    En ce qui concerne ma première question, je n'arrive pas à appliquer le changement de locale à toute mon application.
    Je vais prendre un ptit exemple pour faciliter mon explication.

    Supposons que j'ai un formulaire avec deux champs.
    J'ai ainsi construit un Bean de type ActionForm (nommé MonBeanForm) qui se charge de valider les paramètres. Selon la valeur des paramètres je retourne des messages d'erreur associés à des properties (FR, EN, ...) (type ActionErrors)

    Quand les données du formulaire sont correctes j'ai une classe Action (MonAction) qui prépare les données (j'ajoute des messages ici) pour que la vue "correcte" m'affiche les informations. J'ai une seconde vue "erreur" qui doit me retourner les messages d'erreurs.

    Je souhaiterais modifier la locale de cette petite application.
    Pour l'instant dans la classe (MonAction) je modifie la locale de cette façon

    this.setLocale( req, new Locale("en","EN")); où req est la requête

    Ainsi quand ma vue "correcte" s'affiche les messages s'affichent selon la langue que j'ai précisé dans (MonAction) ici en anglais.

    Le problème étant dans la vue "erreur" où je n'arrive pas à choisir la locale. J'ai essayé dans la classe MonBeanForm en utilisant l'objet requête mais rien n'y fait.

    Y a pas un moyen avec Struts de dire au tout début, voilà utilise cette locale.

    Pour la seconde question, elle est relative à l'internationalisation. Je me rends compte que pour les balises personnalisées y a redondance entre les balises Struts et les balises JSTL concernant cette internationalisation. En fait, ayant l'habitude (en fait ça m'embête de devoir abandonner JSTL au profi de Struts) de JSTL je voudrais tant bien que mal l'employer dans Struts. Surtout si je modifie la locale avec Struts je souhaiterais que la locale de JSTL soit modifiée en conséquence.

    J'ai bien trouvé un moyen mais bon, ça ne me convient qu'a moitié. Une solution modifier l'attribut "javax.servlet.jsp.jstl.fmt.locale.session" ou bien par la constante de classe javax.servlet.jsp.jstl.core.Config.FMT_LOCALE+"session". En fait je ne fait rien d'autre que la même chose que la balise setLocale de FMT JSTL.

    Voilà, j'espère que c'est plus clair

    Merci pour tout
    Responsable Java de Developpez.com (Twitter et Facebook)
    Besoin d"un article/tutoriel/cours sur Java, consulter la page cours
    N'hésitez pas à consulter la FAQ Java et à poser vos questions sur les forums d'entraide Java
    --------
    Ingénieur de Recherche en informatique au LIAS / ISAE-ENSMA
    Page de Developpez.com : mbaron.developpez.com
    Twitter : www.twitter.com/mickaelbaron
    Blog : mickael-baron.fr
    LinkedIn : www.linkedin.com/in/mickaelbaron
    DBLP : dblp.uni-trier.de/pers/hd/b/Baron:Micka=euml=l

  4. #4
    Rédacteur

    Avatar de Mickael Baron
    Homme Profil pro
    Ingénieur de Recherche en Informatique
    Inscrit en
    Juillet 2005
    Messages
    14 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur de Recherche en Informatique
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2005
    Messages : 14 974
    Par défaut Coopération Struts et JSTL pour l'internationalisation
    J'ai trouvé une solution pour faire coopérer JSTL et Struts pour l'internationalisation.

    Mon problème était de changer de locale pour JSTL et Struts.
    J'ai une Action qui est lancée au tout début de mon application WEB

    A la fin de la méthode execute je modifie les deux variables de localisation de cette manière

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Locale ma_locale = new Locale("fr","FR");
    this.setLocale( req, ma_locale);
    		req.getSession().setAttribute("javax.servlet.jsp.jstl.fmt.locale.session", ma_locale);
    return mapping.findForward(next_view);
    Le problème c'est que rien m'empêche que l'invariant suivant localeJSTL=localeStrutus est respecté tout au long de mon application web

    @+
    Responsable Java de Developpez.com (Twitter et Facebook)
    Besoin d"un article/tutoriel/cours sur Java, consulter la page cours
    N'hésitez pas à consulter la FAQ Java et à poser vos questions sur les forums d'entraide Java
    --------
    Ingénieur de Recherche en informatique au LIAS / ISAE-ENSMA
    Page de Developpez.com : mbaron.developpez.com
    Twitter : www.twitter.com/mickaelbaron
    Blog : mickael-baron.fr
    LinkedIn : www.linkedin.com/in/mickaelbaron
    DBLP : dblp.uni-trier.de/pers/hd/b/Baron:Micka=euml=l

  5. #5
    Membre chevronné
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 274
    Par défaut
    Bonjour,

    le code suivant défini la langue par défaut dans la session et devrait donc permettre de la définir pour toute l'application.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
            HttpSession session = request.getSession();
            Locale locale = new Locale("fr","FR"); 
            session.setAttribute(Globals.LOCALE_KEY, locale);

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

Discussions similaires

  1. [Struts]Struts-validator syntaxe
    Par MikoShiva dans le forum Struts 1
    Réponses: 11
    Dernier message: 08/09/2005, 20h15
  2. [Struts]Struts + Caddie
    Par mamouth2005 dans le forum Struts 1
    Réponses: 4
    Dernier message: 04/03/2005, 22h06
  3. [Struts][struts-config.xml] question sur l element action
    Par SEMPERE Benjamin dans le forum Struts 1
    Réponses: 3
    Dernier message: 08/10/2004, 16h25
  4. [struts]: struts-config.xml
    Par sleepy2002 dans le forum Struts 1
    Réponses: 2
    Dernier message: 01/10/2004, 10h32
  5. Réponses: 3
    Dernier message: 02/09/2004, 11h26

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