2011-06-21 54 views
1

我有一些特殊字符的字段。當我通過將表單提交給Springs Controller來從JSP傳遞這些字段時,它將顯示如下。從JSP傳遞特殊字符到控制器

á - á 
é - é 
í - Ã 
ó - ó 
ú - ú 
ñ - ñ 

我嘗試一些東西喜歡把一些編碼在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> 

編碼在控制器一樣,

request.setCharacterEncoding("UTF-8"); 

不過我不能夠解決這個問題。請幫忙。

在此先感謝。

注:我在我們的計算器中檢查了一些與此問題有關的問題,但仍無法找到它。 Character encoding JSP -displayed wrong in JSP but not in URL: "á » á é » é"

+1

它是'get'還是'post'查詢?你有其他的過濾器嗎?另請參閱http://balusc.blogspot.com/2009/05/unicode-how-to-get-characters-right.html – axtavt

+0

@axtavt:非常感謝好友,這解決了我的問題。我在web.xml中添加了過濾器,並保留了'post'方法,一切工作正常。請發佈此回答將批准。 – Max

+0

我不認爲這是自己的答案。 – axtavt

回答

3

此過濾器僅適用於POST請求。對於GET請求,您需要在servletcontainer級別配置它。例如,在Apache Tomcat的情況下,您需要編輯/conf/server.xml中的<Connector>條目以添加URIEncoding="UTF-8"屬性。

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

調用request.setCharacterEncoding("UTF-8");手動具有作爲過濾器已經這樣做沒有效果。

相關問題