Situación adecuada -> Situación del código confuso al pasar de JSP a acción, aquí tomando GBK como ejemplo
1. Cree un filtro para la codificación de conversión
Ejemplo de ubicación del archivo: src.util.setcharacteriCodingFilter.java
La copia del código es la siguiente:
paquete utilizado;
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;
import javax.servlet.unavailableException;
/**
* Filtro de ejemplo que establece la codificación de caracteres que se utilizará para analizar el
* Solicitud entrante
*/
Public Class SetCharacteriCodingFilter implementa el filtro {
/**
* Saque este filtro fuera de servicio.
*/
public void destruye () {
}
/**
* Seleccione y establezca (si se especifica) la codificación de caracteres que se utilizará
* Interprete los parámetros de solicitud para esta solicitud.
*/
Public Void Dofilter (Solicitud de ServLetRequest, Respuesta de ServletResponse,
FilterChain Chain) lanza ioexception, servletException {
request.setcharacterEncoding ("GBK");
// Pase el control al siguiente filtro
Chain.dofilter (solicitud, respuesta);
}
public void init (filterconfig filtreConfig) lanza ServletException {
}
}
2. Modifique Web.xml y agregue 2 filtros antes de la asignación de FilterDispatcher de Struts
La copia del código es la siguiente:
<? xml versión = "1.0" encoding = "utf-8"?>
<Web-app versión = "2.5"
xmlns = "http://java.sun.com/xml/ns/javaee"
xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance"
xsi: schemalocation = "http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd ">
<Oyerer>
<Oyerer-class> org.springframework.web.context.contextlogloaderListener </ oyinger-class>
</oyente>
<filtrar>
<filter-name> Establecer la codificación de caracteres </filter-name>
<Scilia-Class> util.
</filter>
<Mapping Filter>
<filter-name> Establecer la codificación de caracteres </filter-name>
<Url-Pattern>/*</url-Pattern>
</filter-mapping>
<filtrar>
<filter-name> struts-clipeNUP </filter-name>
<Tarter-class> org.apache.struts2.dispatcher.actionContextCleanup </filter-class>
</filter>
<Mapping Filter>
<filter-name> struts-clipeNUP </filter-name>
<Url-Pattern>/*</url-Pattern>
</mapeo de filtro>
<filtrar>
<filter-name> struts2 </filtre-name>
<Tilter-Class> org.apache.struts2.dispatcher.filterdispatcher </filter-class>
</filter>
<Mapping Filter>
<filter-name> struts2 </filtre-name>
<Url-Pattern>/*</url-Pattern>
</mapeo de filtro>
</web-app>
3. Tu encabezado JSP debería tener
<%@ page lenguaje = "java" pageEncoding = "GBK"%>
4. Modifique la configuración de codificación predeterminada en Struts.xml
La copia del código es la siguiente:
<TRUTS>
<constant name = "struts.i18n.encoding" value = "gbk"> </ constant>
...
...
...
</truts>
Básicamente, esto puede resolver el problema de la mayoría de los personajes entrantes.
PD: Si la base de datos extrae personajes confusos, como MySQL, confirme que los caracteres de su base de datos son GBK, y la cadena de conexión especifica la codificación de caracteres.
<propiedad name = "url" value = "jdbc: mysql: // localhost/database? useUnicode = true & caracterSencoding = gbk"> </propiedad>