p
u
b
l
i
c
i
t
é
publicité
+ Répondre à la discussion Actualité déjà publiée
  1. #1
    Responsable Java

    Avatar de Mickael Baron
    Homme Profil pro
    Ingénieur de Recherche en Informatique
    Inscrit en
    juillet 2005
    Messages
    8 483
    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 : 8 483
    Points : 42 320
    Points
    42 320

    Par défaut Participez à la FAQ Struts

    Bonjour,

    La FAQ Struts est ouverte à tous, vous pouvez donc y participer activement. Soit vous pouvez poster vos questions et réponses dans cette enfilade, soit vous pouvez utiliser l'application collaborative d'édition de FAQ.

    L'adresse de la FAQ : http://java.developpez.com/faq/struts/

    Merci à tous pour vos contributions.

    L'équipe Java
    Ingénieur de Recherche en informatique au LIAS / ENSMA
    Responsable Java de Developpez.com

    Page de cours : mbaron.developpez.com
    Blog : keulkeul.blogspot.com
    Page Pro : www.lias-lab.fr/members/mickaelbaron
    LinkedIn : www.linkedin.com/in/mbaron
    Twitter : www.twitter.com/mickaelbaron

  2. #2
    Invité de passage
    Inscrit en
    juin 2005
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : juin 2005
    Messages : 1
    Points : 1
    Points
    1

    Par défaut

    Merci pour votre aide.
    Sans votre aide je ne pouvais pas debloquer mon probleme.
    En fait, j'avais une liste deroulante remplie avec des questions (francais ou anglais).
    Je voulais la remplir en anglais si l'usager choisit l'anglais comme langue de navigation au depart ou en francais si l'usager choisit le francais.
    Avec le code que vous avez ecrit la liste contient toujours le texte en francais, meme si je change la langue.

    voici les etapes pour mener a bien cette implementation:
    dans votre classe LocaleAction vous devez faire le changement suivant:

    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
    public ActionForward execute(ActionMapping mapping, ActionForm form,
    			HttpServletRequest request, HttpServletResponse response)
    			throws Exception {
     
    		// Extract attributes we will need
    		HttpSession session = request.getSession();
    		Locale locale = getLocale(request);
     
    		String language = null;
    		String country = null;
    		String page = null;
     
    		try {
    			language = (String) PropertyUtils.getSimpleProperty(form,
    					"language");
    			country = (String) PropertyUtils.getSimpleProperty(form, "country");
    			page = (String) PropertyUtils.getSimpleProperty(form, "page");
    		} catch (Exception e) {
    			log.error(e.getMessage(), e);
    		}
     
    		if ((language != null && language.length() > 0)
    				&& (country != null && country.length() > 0)) {
    			locale = new java.util.Locale(language, country);
    		} else if (language != null && language.length() > 0) {
    			locale = new java.util.Locale(language, "");
    		}
     
    		session.setAttribute(Globals.LOCALE_KEY, locale);
    		if (null == page)
    			return mapping.findForward("success");
    		else
    			return new ActionForward(page);
     
    	}
    Vous devez ensuite ajouter les lignes suivantes a votre struts-config.xml:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <form-bean name="localeForm" type="org.apache.struts.action.DynaActionForm">
    			  <form-property name="language" type="java.lang.String" />
    			  <form-property name="country" type="java.lang.String" />
    		</form-bean>
    puis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     <action path="/locale" type="com.matar.onlinestore.LocaleAction" name="localeForm" scope="request">
                  <forward name="success" path="/home.do" />
         	</action>
    Ensuite vous devez faire le changement suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    localizedMessage = messageResources.getMessage((Locale)session.getAttribute(Globals.LOCALE_KEY), messageKey);
    Pour acceder aux keys suivant la langue selectionnee vous devez utiliser le code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    getLocalizedMessage(request, "Struts.hello");
    Dans MessageResources
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Struts.hello=Hello Struts
    et dans MessageResources_fr
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Struts.hello=Bonjour  Struts

  3. #3
    Membre actif
    Inscrit en
    mai 2004
    Messages
    297
    Détails du profil
    Informations forums :
    Inscription : mai 2004
    Messages : 297
    Points : 177
    Points
    177

    Par défaut

    Je tiens à preciser qu'il faudrait faire valider ce point par un véritable expert

    Question : Comment gérer le problème d'accent non reconnu dans struts.


    Réponse :

    Paramétrer le système de codage de votre projet (par exemple son Eclipse
    Clique droit sur ton projet -> propriétés et là dans text file encoding on peut mettre UTF-8).

    Rajouter dans les en-têtes des pages JSP le même code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <%@ page contentType="text/html;charset=UTF-8" ....
    Ensuite dans l'ActionForm il faut recuperer la méthode reset et la modifier :


    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
     
    	/**
    	 * @author 
    	 * @param mapping
    	 * @param request
    	 * @version v1.0.0 
    	 * Encode la request en UTF-8 pour éviter problème des accents
    	 */
     
    	public void reset(ActionMapping mapping, HttpServletRequest request) {
    		try {
    			request.setCharacterEncoding("UTF-8");
    		} catch (UnsupportedEncodingException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    		super.reset(mapping, request);
    	}
    voilà en tout cas cela m'a permi de ne plus avoir de problème mais il faut vraiment être certain que sur tous les niveaux on a bien le même encodage.

    ++

  4. #4
    Expert Confirmé Sénior


    Inscrit en
    octobre 2003
    Messages
    7 868
    Détails du profil
    Informations forums :
    Inscription : octobre 2003
    Messages : 7 868
    Points : 33 296
    Points
    33 296

    Par défaut

    Quelqu'un de motivé pour expliquer le principe du staticJavascript et du dynamicJavascript dans le tag <html:javascript> pour le validator ?

Discussions similaires

  1. Participez à la FAQ JDBC
    Par Mickael Baron dans le forum JDBC
    Réponses: 7
    Dernier message: 23/09/2013, 17h26
  2. Participez à la FAQ Struts
    Par Mickael Baron dans le forum Struts 2
    Réponses: 3
    Dernier message: 05/04/2007, 22h00
  3. [Participez à la FAQ !] La question de la semaine
    Par Giovanny Temgoua dans le forum Langage
    Réponses: 18
    Dernier message: 13/12/2005, 09h58
  4. Participez à la FAQ Java EE
    Par Mickael Baron dans le forum Java EE
    Réponses: 1
    Dernier message: 28/08/2003, 11h49

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