使用重音编码错误。 Spring-mvc峰会形式

时间:2013-12-12 19:59:20

标签: java jquery spring java-ee spring-mvc

我有一个带弹簧框架的应用程序。我有一个表单,我用jQuery提交表单:

console.log( jQuery("#descripcionCuenta").val() );
jQuery("#cuentaDeCobroForm").submit();

我在下一个方法中接受了这个:

@RequestMapping(value = "/emitirCuentaDeCobro", method = {RequestMethod.GET,RequestMethod.POST} )
public String emitirCuentaDeCobro(
        @ModelAttribute("cuentaDeCobroDominio") CuentaDeCobroGUIDTO cuentaDeCobroGUIDTO,
        BindingResult result, ModelMap modelMap,
        HttpServletRequest request, 
        HttpServletResponse response) {
    ....
}

当字段有重音符号(á,é,í...)时,控制台中的字段descripcionCuenta没问题,但是方法显示不正确,显示?而不是口音。

例如:

Descripción:
在控制台中:Descripción
在方法中:Descripci?n

知道如何解决这个问题吗?

我尝试在web.xml中添加一个过滤器:

<filter>
    <filter-name>encoding-filter</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>
    <init-param>
        <param-name>forceEncoding</param-name>
        <param-value>true</param-value>
    </init-param>

</filter>

<filter-mapping>
    <filter-name>encoding-filter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

并修改了server.xml中的连接器:

<Connector URIEncoding="UTF-8" ...>
    ...
</Connector>

这些都不起作用。

1 个答案:

答案 0 :(得分:0)

在web.xml中添加以下内容

<filter>  
    <filter-name>encodingFilter</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>  
    <init-param>  
        <param-name>forceEncoding</param-name>  
        <param-value>true</param-value>  
    </init-param>  
</filter> 
<filter-mapping>  
    <filter-name>encodingFilter</filter-name>  
    <url-pattern>/*</url-pattern>  
</filter-mapping>