Struts2 + Tilesで文字化け [完全解決]
ソースコードリーディングから学ぶ
Javaの設計と実装
のStruts見てたらひらめいた。
SetCharacterEncodingFilter
ってフィルタを使う。
これは前から使ってたんだけど、ちょっと記述がたりなかった。
doFilterメソッドの
if (encoding != null)
request.setCharacterEncoding(encoding);
の部分を
if (encoding != null) {
request.setCharacterEncoding(encoding);
response.setCharacterEncoding(encoding);
}
とする。 よーするにresponseにも同じCharsetを設定してやる。
そんで、全部のjspに
<%@ page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8"%>
を追加してやる。(UTF-8の場合)
これでバッチリ文字化けしなくなった。