Bonjour,
J'ai récemment décidé de me faire une petite application JEE. Dans cette application j'ai mis en place des formulaires dans les jsps qui appellent des actions et je récupère coté serveur, dans des actions struts 2, les données pour les traiter.
Or, j'ai un problème niveau du traitement des caractères spéciaux. En effet, quand je passe par exemple la valeur : "ééé" dans un formulaire, j'obtiens dans l'action java le résultat suivant : "ééé".
Ce qui m'étonne, c'est qu'au niveau de la page jsp, j'ai bien mis les informations suivantes:
et
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
Après quelques recherches, j'ai lu qu'il fallait faire un filtre qui se chargeait de définir l'encodage des objets HttpServletRequest et HttpServletResponse.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
Aussi, j'ai créé une classe implémentant l'interface Filter :
Ensuite, j'ai déclaré le filtre en tête des filtres du 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
17
18
19
20
21
22
23
24
25
26
27
28 package com.naialola.TradWeb.filtres; import java.io.IOException; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; public class EncodageFiltre implements javax.servlet.Filter { private String encoding; public void init(FilterConfig filterConfig) throws ServletException { this.encoding = filterConfig.getInitParameter("encoding"); } public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) throws IOException, ServletException { request.setCharacterEncoding(encoding); filterChain.doFilter(request, response); } public void destroy() { } }
Seulement, le problème c'est que cela n'a rien changé.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 <filter> <filter-name>Encodage Filtre</filter-name> <filter-class>com.naialola.TradWeb.filtres.EncodageFiltre</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> </filter> <filter-mapping> <filter-name>Encodage Filtre</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
Aussi, en bon débutant, je viens vous demander de l'aide et je vous remercie d'avance pour celle-ci.
Pataud.
PS: il est à noter que j'utilise aussi les tiles et que les balises ci-dessous sont bien définies dans la page de structure dans laquelle sont implantées les autres pages (j'ai aussi testé de rajouter les balises dans les fichiers implantés mais cela n'a pas changé mes problèmes).
et
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
Partager