Struts2 + Tilesで文字化け [完全解決]

ソースコードリーディングから学ぶ
Javaの設計と実装
Struts見てたらひらめいた。
ソースコードリーディングから学ぶ Javaの設計と実装

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の場合)

これでバッチリ文字化けしなくなった。