[Seasar-user:12223] Re: [S2Struts]Actionクラスへのバインディングについて

Yuasa Takahiro [E-MAIL ADDRESS DELETED]
2007年 12月 20日 (木) 11:53:24 JST


中村様
湯浅です。
お世話になっております。
返事が遅くなってしまい、誠に申し訳ございません。

> 1.3.0-RC3のSNAPSHOTを作成しました。
> これで問題ないか試していただけないでしょうか?

早速のご対応、誠にありがとうございます。

> [STRUTS-58] - パラメータよりもリクエストの値を優先してActionの
> プロパティにバインディングするようにしました。
が適用され、正しく動作することを確認いたしました。

ただ、バインドの優先順位が
 1.HttpServletRequest#getAttribute()
 2.HttpServletRequest#getParameter()
 3.HttpSession#getAttribute()
なので、Sessionのデータをバインドしたい場合は、依然として
パラメータが勝ってしまいますね。
 -> これについてはSessionデータの管理をS2コンテナに任せる
    (Sessionに載せるDTOに@Componenent(instance=InstanceType.SESSION)と指定する)
    ことで、S2Strutsによるバインドの前にコンテナによるDIが実行されるため、解決できました。
    (DTOはString型でないため、パラメータで上書かれることもありませんし。)

また、
> S2Containerの@Bindingアノテーションのように、
> S2StrutsによるActionのプロパティへのバインディングの有効/無効
> の制御が出来る仕組みがあると、何かと便利かと思います。
の件ですが、よくよく考えてみると、バインディングの有効/無効だけでなく、
もっと細かな条件(例えば、どのスコープからバインドするか等々)まで指定
できないとイマイチ使いどころがないと分かりました。
これだと複雑すぎるので、上記の依頼につきましては撤回いたします。

以上です。
ありがとうございました。

-- 
Yuasa Takahiro


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