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

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    janvier 2011
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : janvier 2011
    Messages : 126
    Points : 85
    Points
    85

    Par défaut [PrimeFaces] Problème d'accent

    Bonjour à tous,

    Je rencontre avec Primefaces (3.2) quelques problèmes avec les accents mais uniquement dans certains cas avec Google Chrome et IE (aucun soucis avec Firefox).

    Si mon formulaire est "posté" directement, je n'ai aucun soucis avec les accents.
    Cependant, si au moment où je poste mon formulaire, j'affiche une fenêtre de confirmation, les accents des différents champs se transforment (é devient é).

    J'ai également le soucis sur le composant dataTable et plus précisément avec le "incell editing". Depuis cette fonctionnalité, dès que j'enregistre ma ligne, les accents ne passent également pas (toujours sous IE et Chrome, aucun soucis avec Firefox).

    J'ai tenté plusieurs choses, mais rien y fait...

    Dans mes fichiers xhtml j'ai tenté d'insérer les balises suivantes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?xml version="1.0" encoding="UTF-8"?>
    <?xml version="1.0" encoding="ISO-8859-15"?>
    <?xml version="1.0" encoding="ISO-8859-1"?>
    Dans mon fichier web.xml, j'ai tenté les balises suivantes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <context-param>
        <param-name>default.charset</param-name>
        <param-value>utf-8</param-value>
    </context-param>
     
    <context-param>
        <param-name>default.charset</param-name>
        <param-value>iso-8859-15</param-value>
    </context-param>
     
    <context-param>
        <param-name>default.charset</param-name>
        <param-value>iso-8859-1</param-value>
    </context-param>
    et finalement, entre les balises <head></head> des fichiers html, j'ai tenté ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <meta http-equiv="content-type" content="text/html;charset=UTF-8" />
    <meta http-equiv="content-type" content="text/html;charset=ISO-8859-15" />
    <meta http-equiv="content-type" content="text/html;charset=ISO-8859-1" />
    Le problème semble donc survenir lorque la page est rafraichie partiellement par une requête AJAX (affichage d'une popup et incell editing).

    Si quelqu'un connaît une solution, je suis preneur !

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    janvier 2011
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : janvier 2011
    Messages : 126
    Points : 85
    Points
    85

    Par défaut

    J'ai finalement trouvé !

    Suffit de faire un filtre comme indiqué ici.

    Voici la classe Java :

    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
     
    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;
     
    public class EncodeFilter implements Filter{
    	@SuppressWarnings("unused")
    	private FilterConfig filterConfig = null;
     
    	@Override
    	public void destroy() {
    		this.filterConfig = null;	
    	}
     
    	@Override
    	public void doFilter(final ServletRequest request, final ServletResponse response, FilterChain chain) throws IOException, ServletException {
    		// Setting the character set for the request
    		request.setCharacterEncoding("UTF-8");
     
    		// pass the request on
    		chain.doFilter(request, response);
     
    		// Setting the character set for the response
    		response.setContentType("text/html; charset=UTF-8");
    	}
     
    	@Override
    	public void init(final FilterConfig filterConfig) throws ServletException {
    		this.filterConfig = filterConfig;	
    	}
    }
    et la déclaration dans le web.xml :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <filter>
    		<filter-name>EncodeFilter</filter-name>
    		<filter-class>chemin_package.EncodeFilter</filter-class>
    	</filter>
     
    	<filter-mapping>
    		<filter-name>EncodeFilter</filter-name>
    		<url-pattern>/*</url-pattern>
    	</filter-mapping>

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

Discussions similaires

  1. petit problème d'accent
    Par No_SenS dans le forum MS SQL-Server
    Réponses: 6
    Dernier message: 11/04/2005, 14h10
  2. Problèmes d'accent avec une connexion ODBC et ADO
    Par michael.jacques dans le forum Bases de données
    Réponses: 3
    Dernier message: 10/03/2005, 16h36
  3. Réponses: 3
    Dernier message: 25/02/2005, 21h46
  4. [XSLT] application d une xslt et problème d'accents
    Par lanfeust23 dans le forum XML
    Réponses: 3
    Dernier message: 26/07/2004, 14h08
  5. Problème avec accents et CHARACTER SET ISO8859_1
    Par kinda dans le forum InterBase
    Réponses: 13
    Dernier message: 30/10/2003, 16h49

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