2011-06-21 19 views
1

特殊文字を含むフィールドがいくつかあります。フォームをSpring Controllerに送信してJSPからフィールドを渡すと、次のように表示されます。JSPからコントローラへの特殊文字の受け渡し

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

私は、コントローラ内のエンコーディングのような、

request.setCharacterEncoding("UTF-8"); 

はまだ私は問題を解決することはできませんよ

<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> 

、web.xmlにいくつかのエンコーディングを置くようないくつかのことを試してみました。助けてください。

ありがとうございます。

注:私は私たちのstackoverflowでこの質問に関連する質問のいくつかをチェックし、まだそれを見つけることができません。 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に編集して、URIEncoding="UTF-8"属性を追加する必要があります。 request.setCharacterEncoding("UTF-8");を呼び出す

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

を手動でフィルタがすでにやっているよう効果がありません。

関連する問題