小编thi*_*bon的帖子

Spring表单和控制器UTF-8编码不好

我的UTF-8编码有问题.我的webapp使用在我的jsp中正确显示的法语单词,但在POST后不在我的控制器中.例如,在我的jsp中,我有:

Prénomdemonpère

当我发布表单时,控制器得到:

Prénodedemonpère

该characterEncodingFilter是该文件中的第一过滤器如描述此交

这是我的jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!doctype html>
<%@ taglib uri="http://tiles.apache.org/tags-tiles"         prefix="tiles" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core"          prefix="c" %>
<%@ taglib uri="http://www.springframework.org/tags/form"   prefix="form" %>

<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <meta http-equiv="content-language" content="fr">
    ...
    </head>

    <form:form class="form-horizontal" modelAttribute="AlimentationForm"
    action="${actionUrl}" method="POST">
    ...
         <form:input path="questions" class='input-xlarge' type='text' value='Prénom de mon père'/>
    </form>
Run Code Online (Sandbox Code Playgroud)

我的web.xml:

<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>
    <init-param>
        <param-name>forceEncoding</param-name>
        <param-value>true</param-value>
    </init-param>
</filter>
<filter-mapping>
    <filter-name>characterEncodingFilter</filter-name>
    <url-pattern>/web/*</url-pattern>
</filter-mapping>
Run Code Online (Sandbox Code Playgroud)

还有我的application-config.xml

<beans:bean id="messageSource" …
Run Code Online (Sandbox Code Playgroud)

post spring-mvc utf-8 character-encoding hdiv

5
推荐指数
1
解决办法
5092
查看次数

标签 统计

character-encoding ×1

hdiv ×1

post ×1

spring-mvc ×1

utf-8 ×1