[Seasar-user:16680] Re: [Teeda]"null"文字列を入力したらPageクラスで"null"(文字

Koichi Kobayashi [E-MAIL ADDRESS DELETED]
2009年 1月 15日 (木) 15:00:19 JST


小林 (koichik) です.

Date:    Thu, 15 Jan 2009 11:40:20 +0900
From:    <[E-MAIL ADDRESS DELETED]>
To:      <[E-MAIL ADDRESS DELETED]>
Subject: [Seasar-user:16677] Re: [Teeda]"null"文字列を入力したらPageクラスで"null"(文字

> こちらでソースを解析したところ、以下の理由から
> 今回の対応を行っても問題ないのかな、と考えています。
> もし他に懸念する問題があればご指摘をお願いいたします。
> 
> (1)バインド値取得
>  最終フィルタに今回の対応を行った場合、バインド値取得部分では
>  ラッパー(TestRequestWrapper)を使用することになる。
>  (RESOTRE_VIEWのServletRequestParameterMapをnewする部分)

これは Teeda が使用する (JSF 仕様の) 外部
バインディングだけです.
JSF の外部バインディングは Seasar2 の外部
バインディングとは別物です.

> (2)外部バインディング
>  外部バインディングではs2filterに渡されたServletRequestを使用しているが、
>  バインドする値はs2filterに渡されたServletRequestから取得した値ではなく、
>  「(1)で取得したバインド値」を使用している。

Seasar2 の外部バインディングに関しては,
(1) の ServletRequestParameterMap ではなく,
s2filter によって設定された HttpServletRequest を
ラップした ServletRequestParameterMap が
使われます.

先に書いたように,GET メソッドにおける
リクエストパラメータのバインディングは
Teeda ではなく Seasar2 によって行われます.
つまり,(1) の ServletRequestParameterMap は
使われません.

> #特に問題がなければ、最終フィルタ内でchain実行時に渡すServletRequestを
> #ラッパーに変更する、という案でいこうと思っています。

ポストバックに対応するだけでよければ
それでも構わないと思います.


-- 
<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 メーリングリストの案内