Tengo una aplicación bastante simple JSP/Servlet 3.0/Spring MVC 3.1.Cómo cambiar la codificación de caracteres para los formularios de carga de varias partes de Servlet 3.0 Spring MVC?
En una de mis páginas, tengo varios formularios. Una de estas formas le permite al usuario cargar un archivo y así se configura con enctype="multipart/form-data"
. Configuré la carga multiparte en el archivo web.xml con el elemento multipart-config
que está disponible desde Servlet 3.0, combinado con <bean id="multipartResolver" class="org.springframework.web.multipart.support.StandardServletMultipartResolver"/>
en mi configuración de primavera.
También tengo configurado el org.springframework.web.filter.CharacterEncodingFilter
de Spring.
El problema que tengo es que no puedo encontrar la manera de establecer la codificación predeterminada de StandardServletMultipartResolver en UTF-8, lo que a menudo hace que el contenido de los campos de texto en el formulario de varias partes se distorsione.
¿Hay alguna manera de arreglar esto?
Gracias de antemano.
Web.xml config:
<?xml version="1.0" encoding="UTF-8"?>
<web-app 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_3_0.xsd"
version="3.0">
<display-name>foo-web</display-name>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
WEB-INF\applicationContext.xml
</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<servlet>
<servlet-name>foo</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>0</load-on-startup>
<multipart-config>
<max-file-size>52428800</max-file-size>
<file-size-threshold>5242880</file-size-threshold>
</multipart-config>
</servlet>
<servlet-mapping>
<servlet-name>foo</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<filter>
<filter-name>CharacterEncodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter>
<filter-name>springSecurityFilterChain</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<filter-mapping>
<filter-name>springSecurityFilterChain</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<welcome-file-list>
<welcome-file>login</welcome-file>
</welcome-file-list>
Yo también estoy enfrentando el problema ... le parecen la solución a este problema? – hanumant
Sí Terminé volcando la configuración de Servlet 3.0 y seguí el enfoque normal de carga compartida, como se explica aquí [enlace] (http://static.springsource.org/spring/docs/current/spring-framework-reference/html/ mvc.html # mvc-multipart) – Mopper