Situation appropriée -> situation de code brouillé lorsque vous passez de JSP à l'action, en prenant ici GBK comme exemple
1. Créez un filtre pour le codage de conversion
Exemple d'emplacement du fichier: src.util.setcharacterencodingfilter.java
La copie de code est la suivante:
package util;
Importer java.io.ioException;
import javax.servlet.filter;
Importer javax.servlet.filterchain;
Importer javax.servlet.filterconfig;
Importer javax.servlet.servletException;
Importer javax.servlet.servletRequest;
import javax.servlet.servletResponse;
Importer javax.servlet.UnavailableException;
/ **
* Exemple de filtre qui définit le codage des caractères à utiliser pour analyser le
* Demande entrante
* /
classe publique setCharAtterencodingFilter implémente le filtre {
/ **
* Sortez ce filtre hors service.
* /
public void destroy () {
}
/ **
* Sélectionnez et définissez (si spécifié) le codage de caractères à utiliser
* Interpréter les paramètres de demande pour cette demande.
* /
Public Void Dofilter (Demande ServletRequest, réponse servletResponse,
FilterChain Chain) lève IOException, ServletException {
request.SetcharAtterencoding ("gbk");
// passer le contrôle au filtre suivant
chain.dofilter (demande, réponse);
}
public void init (filterConfig filterConfig) lève ServletException {
}
}
2. Modifier web.xml et ajouter 2 filtres avant la mappage de filterdispatcher de Struts
La copie de code est la suivante:
<? xml version = "1.0" Encoding = "utf-8"?>
<web-app version = "2.5"
xmlns = "http://java.sun.com/xml/ns/javaee"
xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance"
XSI: ScheMalation = "http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd ">
<Cauditeur>
<écouteur-classe> org.springframework.web.context.contextLoaderListener </ écouteur-classe>
</diner>
<filtre>
<Filter-Name> Définir le codage des caractères </filter-name>
<Filter-Class> util.SetcharAtterencodingFilter </filter-Class>
</filter>
<mappage filtrant>
<Filter-Name> Définir le codage des caractères </filter-name>
<url-sattern> / * </ url-sattern>
</filter-mapping>
<filtre>
<Filter-Name> Struts-Cleanup </filter-name>
<filtre-class> org.apache.struts2.dispatcher.actionContextCleanup </filter-Class>
</filter>
<mappage filtrant>
<Filter-Name> Struts-Cleanup </filter-name>
<url-sattern> / * </ url-sattern>
</mapping filtre>
<filtre>
<Filter-Name> Struts2 </filter-name>
<filtre-class> org.apache.struts2.dispatcher.filterdispatcher </filter-Class>
</filter>
<mappage filtrant>
<Filter-Name> Struts2 </filter-name>
<url-sattern> / * </ url-sattern>
</mapping filtre>
</ web-app>
3. Votre en-tête JSP devrait avoir
<% @ Page Language = "Java" Pageencoding = "GBK"%>
4. Modifiez les paramètres de codage par défaut dans struts.xml
La copie de code est la suivante:
<routs>
<constante name = "struts.i18n.encoding" value = "gbk"> </ constante>
...
...
...
</rutts>
Fondamentalement, cela peut résoudre le problème de la plupart des personnages entrants
PS: Si la base de données extrait les caractères bruits, comme MySQL, confirmez que les caractères de votre base de données sont GBK et que la chaîne de connexion spécifie le codage des caractères.
<propriété name = "url" value = "jdbc: mysql: // localhost / database? useunicode = true & caractèrescoding = gbk"> </ propriété>