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 de changement de langue


Sujet :

Struts 1 Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Développeur Java
    Inscrit en
    Janvier 2008
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2008
    Messages : 42
    Par défaut Problème de changement de langue
    Bonjour tt le monde,

    Voilà je réalise ma première application avec struts, et dans ma page de userlogin.jsp j'ai deux champs text (login et password) et une list de choix pour la langue (pour le francais et l'espagnol).
    lorsque l'utilisateur est valide je fais un changement de langue avec le code suivant dans la fonction execute de mon action :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    String lang = objForm.getLanguage();
     
    if(lang.equals("espagnol")) {
    Locale locale = new Locale("es", "ES");
    request.getSession().setAttribute(Globals.LOCALE_KEY, locale);
    System.out.println("The specified language " + locale.getLanguage() +"\n");
    }
    .....
    return mapping.findForward("success");
    le forward fonctionne bien sauf que le message de la page loginsuccess.jsp ne change pas selon la langue.

    une partie de mon fichier struts-config.xml:
    Code xml : 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
    	<form-bean name="UserLoginForm" 
                  type="biling.web.struts.form.UserLoginForm">
            </form-bean>
    .........
            <action
    	      path="/userlogin"
    	      name="UserLoginForm"
    	      scope="request"
    	      validate="true"
    	      input="/pages/user/userlogin.jsp"
    	      type="biling.web.struts.action.UserLoginAction">
    	      <forward name="success" path="/pages/user/loginsuccess.jsp"/>
    	      <forward name="failure" path="/pages/user/userlogin.jsp"/>
    	   </action>
     
    ......
     
    <!-- ==================== Message Resources Definitions -->
     
    <!--	    <message-resources key="1" null="false" parameter="src.classes.resources.MessageRessources" />    -->
    	    <message-resources null="false" parameter="resources.MessageRessources_es_ES" />    
    	    <message-resources null="false" parameter="resources.MessageRessources_fr_FR" />

    J'ai bien suivi les commentaires faites sur ce tuto, mais sans résultat.
    Le code de ma page loginsuccess.jsp :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ....
     <html:html locale="true">
    ....
    <bean:message key="pages.login.successfuly" />
    ....
    Merci par avance.
    J'attend vos réponses avec impatience

  2. #2
    Expert confirmé

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Par défaut
    Pour changer la locale dans l'Action, essaie plutôt de remplacer ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Locale locale = new Locale("es", "ES");
    request.getSession().setAttribute(Globals.LOCALE_KEY, locale);
    par ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.setLocale(request,new Locale("es", "ES"));

  3. #3
    Membre confirmé
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    167
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 167
    Par défaut
    Peux tu poster le source de ta JSP stp?

    PS : si je peux me permettre, c'est mieux d'ouvrir une nouvelle discussion et de faire référence à cette ancienne discussion... qui est

  4. #4
    Membre averti
    Profil pro
    Développeur Java
    Inscrit en
    Janvier 2008
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2008
    Messages : 42
    Par défaut
    Merci pr vos réponses rapides.
    c_nvy J'ai essayé le changement suivant mais ca ne donne rien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.setLocale(request,new Locale("es", "ES"));
    Voilà le code la userlogin.jsp :
    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
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
     
     
    <%@ taglib uri="/tags/struts-bean" prefix="bean" %>
    <%@ taglib uri="/tags/struts-html" prefix="html" %>
    <html:html locale="true">
    <head>
    	<title><bean:message key="welcome.title"/></title>
    	<LINK rel="stylesheet" type="text/css" name="anyname" href="<html:rewrite page='/css/style.css'/>">
    </head>
    	<html:base/>
     
     
     
    <body>
     
    <%@ include file="../top.jsp"%>  
    <center>
     
       <table width="40%">
     
       <tr>
       <!--
         <td colspan="5">
     
    			<table width="400" border="1"  cellpadding="0" cellspacing="0" align="center" >
    				<tr>
     
    				-->		 <td>
    						  <html:form action="/userlogin" method="post">
    							  <table border="1" cellspacing="2" cellpadding="1" width="100%" class="signup">
    								  <tr>
    									 <td align="center" colspan="2" ><font size="5"><bean:message key="pages.login.title" /></font><br><font color="red"><html:errors/></font></td>
    								  </tr> 
     
    								  <!-- display errors -->
     
     
     
                                      <!-- ..................-->
    								  <tr align="center">
    									  <td align="right" width="50%"><b><bean:message key="pages.login.userlogin" /></b></td> 
    									  <td width="50%"><html:text property="userid" size="30" maxlength="30"/></td>
    								 </tr> 
    								 <tr align="center">
    									  <td align="right"><b><bean:message key="pages.login.password" /></b></td> 
    									  <td><html:password property="password" size="30" maxlength="30"/></td>
    								 </tr> 
     
    								 <tr align="center">
    									  <td align="right"><b><bean:message key="pages.login.language" /></b></td> 
    									  <td>
    									  		<html:select property="language">
    									  			<html:option value="espagnol"><bean:message key="pages.login.eslang" /></html:option>									  			
    									  			<html:option value="francais"><bean:message key="pages.login.frlang" /></html:option>
    									  		</html:select>
    									  </td>
    								 </tr> 
     
    								  <tr>
    									  <td align="right">
    									  		<html:submit> <bean:message key="pages.login.signin" /> </html:submit> 
    									  </td>
    									  <td align="left"> 
    									  		<html:reset> <bean:message key="pages.login.reset" /> </html:reset> 
    									  </td>									  
    								 </tr> 
     
     
     
    							 </table>
    						</html:form>
    					</td>
     
    				<!--	
    			</tr>
    		</table>
         </td> -->
    	 </tr>
    </table>
     
    </center>
    </body>
    </html:html>
    et voici celui de loginsuccess.jsp :

    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
     
     
      <%
     String userid=(String)session.getAttribute("userID");
    if(userid == null)
    {
    	response.sendRedirect("../userlogin.jsp");
     
    }else{
    %> 
     
     <%@ taglib uri="/tags/struts-bean" prefix="bean" %>
     <%@ taglib uri="/tags/struts-html" prefix="html" %>
     <html:html locale="true">
     
     <head>
     
     <title></title>
     <html:base/>
     </head>
     <body>
     <%@ include file="../top.jsp"%>  
     
     <center>
     
      <p><b><bean:message key="pages.login.successfuly" /></b></p>
    <!--
      <p><a href="/project/userregister.do?action=Edit">Update your Profile</a></p>
      -->
    </center>
      </body>
      </html:html>
      <%}%>
    Il y'a un autre point qui me surprend, au changement de la langue de mon browser (que ca soit firefox5 ou ie6) du francais à l'espagnol les messages ne ce produisent pas en espagnol, je ne sais pas d'où ca peut provenir !!

  5. #5
    Membre confirmé
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    167
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 167
    Par défaut
    Je ne connais pas la methode avec les <bean:message > est ce la même que la librairie de formatage (fmt) de la JSTL ?

    Pour ma part, j'utilise fmt. je te conseillerai de jeter un petit coup d'oeil au tutoriel

  6. #6
    Expert confirmé

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Par défaut
    Je n'avais pas bien regardé ton struts-config.xml.

    Les messages ne s'affichent qu'en français parce que tu as défini deux fichiers des messages dans le struts-config.xml et donc, c'est seulement le dernier qui est pris en compte.

    Dans ton cas, il faut déclarer un seul fichier des messages comme ceci :
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    <message-resources null="false" parameter="resources.MessageRessources" />
    C'est Struts qui va rechercher automatiquement les messages dans l'un ou l'autre des fichiers en fonction de la locale.

  7. #7
    Membre averti
    Profil pro
    Développeur Java
    Inscrit en
    Janvier 2008
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2008
    Messages : 42
    Par défaut
    C'est bon ca marche très bien, un grand merci a tous le monde pr vos réponses.
    Pour ce qui est des JSTL jdvacheron, je ne connais pas encore les JSTL donc je ne peut donner un avis bien précis mais selon le petit coup d`œil que j'ai fait ici
    je pourrai dire que c'est a peut prêt la même chose.
    Merci encore

  8. #8
    Membre confirmé
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    167
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 167
    Par défaut


    Citation Envoyé par jdvacheron Voir le message
    Je ne connais pas la methode avec les <bean:message > est ce la même que la librairie de formatage (fmt) de la JSTL ?
    oui cf taglib api

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

Discussions similaires

  1. Problème de changement de langue
    Par Piercing dans le forum Visual Studio
    Réponses: 4
    Dernier message: 25/07/2011, 13h50
  2. Problème changement de langue
    Par tibobao dans le forum ASP.NET
    Réponses: 3
    Dernier message: 22/01/2007, 12h03
  3. [JSP] Changement de langue
    Par sg-40 dans le forum Servlets/JSP
    Réponses: 9
    Dernier message: 07/06/2005, 12h15
  4. Réponses: 2
    Dernier message: 03/03/2004, 10h44
  5. Changement de langue dynamique (D6 et outils de traduction)
    Par agon dans le forum Composants VCL
    Réponses: 4
    Dernier message: 17/09/2002, 16h15

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