[Seasar-user:16939] Re: [S2Click] s2container 2.4.34での文字コード指定

Koichi Kobayashi [E-MAIL ADDRESS DELETED]
2009年 2月 18日 (水) 00:00:24 JST


小林 (koichik) です.

Date:    Tue, 17 Feb 2009 22:25:01 +0900
From:    Naoki Takezoe <[E-MAIL ADDRESS DELETED]>
To:      [E-MAIL ADDRESS DELETED]
Subject: [Seasar-user:16938] Re: [S2Click] s2container 2.4.34での文字コード指定

> EncodingFilterを一番外側で適用するとちゃんと
> setCharacterEncoding()が効いているようなので、
> S2側のフィルタのどこかでリクエストパラメータに
> 触っているのではないかと思います。
> 
> という仮説にもとづきCONTAINER-334の差分を
> チェックしてみましたが、S2ContainerFilterを通った
> タイミングでリクエストパラメータに触るよう変更されて
> いるのが原因ではないかと思います。

たしかに S2ContainerFilter が外部コンテキストに
HttpServletRequest を設定するタイミングで
HttpServletRequest#getParameterMap() を
呼び出すようになりました.

2.4.33 以前は,実際にリクエストパラメータが
必要になった時点で毎回 getParameterNames() を
呼び出していました.

タイミングの変更より,getParameterNames() を
getParameterMap() に変更した影響が大きいかも
しれません.
これは S2 に含まれる Mock と組み合わせる
都合による変更なのですが,失敗だったかなぁ...

> なお、S2ClickではClick側(サーブレット)で
> Clickの設定ファイルに設定された文字コードを
> setCharacterEncoding()しているので、これまでは
> EncodingFilterを使う必要がありませんでした。

それだと,requestDumpFilter のようなものが
あるだけでも影響を受けたということでしょうか?

> Seasar的には標準添付のEncodingFilterを
> 使用するのが正攻法だと思うので、
> これはS2Click側の問題といえます。
> 
> そのため、個人的にはCONTAINER-334の修正は
> 問題ないのではと思います。

了解しました.


-- 
<component name="koichik">
    <property name="fullName">"Koichi Kobayashi"</property>
    <property name="email">"[E-MAIL ADDRESS DELETED]"</property>
    <property name="blog">"http://d.hatena.ne.jp/koichik"</property>
</component>



Seasar-user メーリングリストの案内