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 :

pb d'accents


Sujet :

Struts 1 Java

  1. #1
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 129
    Par défaut pb d'accents
    Bonjour

    Je récupère des données dans un formulaire.
    Mais pour les accents j'ai un problème.
    Quand j'affiche l'élément saisi dans la page suivante, il y a un problème d'accents.

    J ai bien configuré sous eclipse mes pages en UTF-8. aussi bien pour les servlet que pour les jsp.
    J ai bien ajouté cette ligne dans chaque jsp :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <%@ page language="java" contentType="text/html; charset=utf-8" %>
    mais j ai toujours le problème.

    J'utilise les dynaActionForm pour les formulaires ...

    Même quand le formulaire n'est pas correct, il change l'accent ...

    Ex : je saisis Maïga ...
    le formulaire est incomplet
    il modifie et met Maïga ...


    Merci ...

  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur Java
    Inscrit en
    Août 2007
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Août 2007
    Messages : 197
    Par défaut
    dans ton formulaire de struts rajoutte l'attribut:
    acceptCharset="utf-8"

    par example:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <html:form action="MonAction.do" acceptCharset="utf-8">
    ++

  3. #3
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 129
    Par défaut
    toujours le meme souci

  4. #4
    Membre confirmé Avatar de badoress
    Inscrit en
    Mars 2007
    Messages
    169
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mars 2007
    Messages : 169
    Par défaut
    essai d'ajouter
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <%@ page contentType="text/html;charset=iso-8859-1" language="java" %>
    au lieu de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <%@ page language="java" contentType="text/html; charset=utf-8" %>

  5. #5
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 129
    Par défaut
    Non, je ne peux pas ...
    Je dois conserver l'UTF-8
    qq un a t il une idée ??

    J'ai aussi le problème quand j utilise un projet exemple de struts ( /struts-cookbook-1.3.9/ ) ...
    Je ne vois vraiment pas d'ou peut venir le problème ...

    J'ai réinstallé tomcat 5.5, j'utilise jre 1.6 ... et struts 1.3.9

    je n en peux plus des ces accents ...

  6. #6
    Membre chevronné
    Avatar de link256
    Profil pro
    Développeur Java
    Inscrit en
    Février 2003
    Messages
    596
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Février 2003
    Messages : 596
    Par défaut
    Ce que j'utilise pour les accents :

    le fichier Web.xml contient le code suivant
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <filter>
    		<filter-name>Character Encoding</filter-name>
    		<filter-class>chemin.de.ton.package.CharsetFilter</filter-class>
    	</filter>
     
    	<filter-mapping>
    		<filter-name>Character Encoding</filter-name>
    		<servlet-name>action</servlet-name>	
    	</filter-mapping>


    et le code de ma class CharsetFilter
    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
    import java.io.IOException;
     
    import javax.servlet.Filter;
    import javax.servlet.FilterChain;
    import javax.servlet.FilterConfig;
    import javax.servlet.ServletException;
    import javax.servlet.ServletRequest;
    import javax.servlet.ServletResponse;
     
    /**
     * 
     * Filtre sur les requetes pour les encoder en UTF-8  
     *
    **/
    public class CharsetFilter implements Filter
    {
    	public void doFilter(ServletRequest request, ServletResponse response,
    			FilterChain chain) throws IOException, ServletException 
    	{			
    		request.setCharacterEncoding("UTF-8");		
    		chain.doFilter(request,response);
    	 }
     
    	/* (non-Javadoc)
    	 * @see javax.servlet.Filter#init(javax.servlet.FilterConfig)
    	 */
    	public void init(FilterConfig arg0) throws ServletException {
    		// TODO Raccord de méthode auto-généré
     
    	}
     
     
    	/* (non-Javadoc)
    	 * @see javax.servlet.Filter#destroy()
    	 */
    	public void destroy() {
    		// TODO Raccord de méthode auto-généré		
    	}
     
     
    }

  7. #7
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 129
    Par défaut Merci
    Merci beaucoup !!!
    Fantastique !!

    Merciiiiiiiiiii

  8. #8
    Membre chevronné

    Profil pro
    Inscrit en
    Mars 2007
    Messages
    392
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 392
    Par défaut
    tu devrais proposer ce code dans la FAQ de Struts car c'est une solution simple à un problème qui peut être souvent rencontré...

    Citation Envoyé par link256 Voir le message
    Ce que j'utilise pour les accents :

    le fichier Web.xml contient le code suivant
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <filter>
    		<filter-name>Character Encoding</filter-name>
    		<filter-class>chemin.de.ton.package.CharsetFilter</filter-class>
    	</filter>
     
    	<filter-mapping>
    		<filter-name>Character Encoding</filter-name>
    		<servlet-name>action</servlet-name>	
    	</filter-mapping>


    et le code de ma class CharsetFilter
    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
    import java.io.IOException;
     
    import javax.servlet.Filter;
    import javax.servlet.FilterChain;
    import javax.servlet.FilterConfig;
    import javax.servlet.ServletException;
    import javax.servlet.ServletRequest;
    import javax.servlet.ServletResponse;
     
    /**
     * 
     * Filtre sur les requetes pour les encoder en UTF-8  
     *
    **/
    public class CharsetFilter implements Filter
    {
    	public void doFilter(ServletRequest request, ServletResponse response,
    			FilterChain chain) throws IOException, ServletException 
    	{			
    		request.setCharacterEncoding("UTF-8");		
    		chain.doFilter(request,response);
    	 }
     
    	/* (non-Javadoc)
    	 * @see javax.servlet.Filter#init(javax.servlet.FilterConfig)
    	 */
    	public void init(FilterConfig arg0) throws ServletException {
    		// TODO Raccord de méthode auto-généré
     
    	}
     
     
    	/* (non-Javadoc)
    	 * @see javax.servlet.Filter#destroy()
    	 */
    	public void destroy() {
    		// TODO Raccord de méthode auto-généré		
    	}
     
     
    }

  9. #9
    Membre chevronné
    Avatar de link256
    Profil pro
    Développeur Java
    Inscrit en
    Février 2003
    Messages
    596
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Février 2003
    Messages : 596
    Par défaut
    Citation Envoyé par parasol007 Voir le message
    Merci beaucoup !!!
    Fantastique !!

    Merciiiiiiiiiii
    Tu vas me faire rougir

    voila c'est fait :p

    Citation Envoyé par mattheox Voir le message
    tu devrais proposer ce code dans la FAQ de Struts car c'est une solution simple à un problème qui peut être souvent rencontré...

    je vais y aller de ce pas ^^

  10. #10
    Invité de passage
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 1
    Par défaut Même problème
    Bonjour,

    J'ai actuellement le même problème que le posteur initial sauf que j'ai un filtre et tout et tout (mes pages avec le charset UTF-8 spécifié etc...)

    Je ne comprends plus rien.

    Dans ma page web :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
    ...
    <html:form action="/rechercheGlobale" method="post" acceptCharset="UTF-8">
      <html:text styleId="searchStr" property="searchStr"/>
      <html:image src="/static/images/boutons/input_rechercher.png" value="Envoyer"></html:image>
    </html:form>
    ...

    mon web.xml

    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
     
            <filter>
    		<filter-name>encodingFilter</filter-name>
    		<filter-class>
    			com.olavoyages.technical.RequestEncodingCharsetFilter
    		</filter-class>
    		<init-param>
    			<param-name>charset</param-name>
    			<param-value>UTF-8</param-value>
    		</init-param>
    	</filter>
     
    	<filter-mapping>
    		<filter-name>encodingFilter</filter-name>
    		<servlet-name>action</servlet-name>
    	</filter-mapping>
    Ma classe :

    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
     
    public final class RequestEncodingCharsetFilter implements Filter {
     
    	private boolean useDefault = true;
     
    	private String charset;
     
    	/*
    	 * (non-Javadoc)
    	 * 
    	 * @see javax.servlet.Filter#init(javax.servlet.FilterConfig)
    	 */
    	public void init(FilterConfig config) throws ServletException {
     
    		String charset = config.getInitParameter("charset");
     
    		if (charset != null && charset.length() > 0) {
    			useDefault = false;
    			this.charset = charset;
    		}
     
    		config.getServletContext().log(
    				"RequestEncodingCharsetFilter.init(config) - "
    						+ "charset des requetes : " + charset);
    	}
     
    	/*
    	 * (non-Javadoc)
    	 * 
    	 * @see javax.servlet.Filter#destroy()
    	 */
    	public void destroy() {
    	}
     
    	/*
    	 * (non-Javadoc)
    	 * 
    	 * @see javax.servlet.Filter#doFilter(javax.servlet.ServletRequest,
    	 *      javax.servlet.ServletResponse, javax.servlet.FilterChain)
    	 */
    	public void doFilter(ServletRequest request, ServletResponse response,
    			FilterChain chain) throws IOException, ServletException {
     
    		if (!useDefault)
    			try {
    				request.setCharacterEncoding(charset);
    			} catch (UnsupportedEncodingException e) {
    				System.err
    						.println("RequestEncodingCharsetFilter.init(config) - "
    								+ "charset des requetes non supporte : "
    								+ charset + " ; remise au defaut");
    				useDefault = true;
    			}
     
    		chain.doFilter(request, response);
    	}
    }
    Je craque là. Si je rajoute du code pour afficher dans ma console la valeur du paramètre dans le filtre, il affiche '√ɬ©' à la place de 'é'

    Ensuite si je reviens dans le formulaire, la valeur est à 'é' (classique)

    Je craque là

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

Discussions similaires

  1. Comment afficher les accent sous mysql v4.0.13
    Par buildozer dans le forum Requêtes
    Réponses: 2
    Dernier message: 17/06/2003, 09h33
  2. Accents
    Par Sylvain Leray dans le forum XMLRAD
    Réponses: 2
    Dernier message: 26/02/2003, 16h17
  3. identification lettre (pb accent)
    Par scorbo dans le forum C
    Réponses: 5
    Dernier message: 14/12/2002, 02h59
  4. que deviennent mes accents ?!
    Par petitdns dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 28/11/2002, 09h32
  5. [Accents - XML] Problème de codage non supporté !!
    Par Smortex dans le forum Composants VCL
    Réponses: 6
    Dernier message: 24/11/2002, 11h00

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