Struts2 文字化け回避

Struts2ではdefaultのエンコーディングUTF-8となっているので、一見問題なく日本語を使えそうだが、JSPからGETで日本語を渡すと文字化けしたりする。その原因はTomcaのURLエンコーディングの設定。

http://struts.apache.org/2.x/docs/how-to-support-utf-8-uriencoding-with-tomcat.html
にしたがって、Tomcatのserver.xml

<!-- Define a non-SSL HTTP/1.1 Connector on port 8080 -->
   <Connector port="8080" maxHttpHeaderSize="8192"
               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
               enableLookups="false" redirectPort="8443" acceptCount="100"
               connectionTimeout="20000" disableUploadTimeout="true"
               URIEncoding="UTF-8"
   />

という感じでURLのエンコーディングUTF-8に指定してやれば日本語を渡しても文字化けせずにActionで受け取ることができた。

ところが、
http://nullpo.2log.net/home/struts2/archives/blog/main/2007/05/15_011953.html
に、POSTの場合はフィルタを余計に噛ませる必要がある旨の記述あり。
実験して検証すべきだろうな。


それにしても、code snippetが登場する話題が少なすぎて、はてなでコーディングハイライトする方法を毎回忘れてしまう・・・。