[s2struts-dev:50] Re: S2Struts1.3でいつくか質問
Toshihiro Nakamura
[E-MAIL ADDRESS DELETED]
2008年 4月 14日 (月) 15:24:56 JST
中村(taedium)です。
> 調べてみると、value の中身がPOJOフォームではなくS2BeanValidatorFormに
> なっていました。どうやら、Container管理下のPOJOフォームを、S2Strutsが
> WrapS2BeanValidatorFormコマンドで上書きしてしまっているのが原因のよう
> ですね。
なるほど、理解できました。
自分の環境でも簡単に再現できました。
> 上記のことから考えると、FormCreatorのライフサイクルとActionFormのscope
> が同じになるとNGで、さりとて
> FormCreator: request、ActionForm: session や、
> FormCreator: session、ActionForm: request
> としても他でトラブるから、prototypeとせざるを得ないんでしょうね。
そういうことですね。
FormCreatorを作った理由は、SMART deployの命名規約を
使って、同一サブアプリケーション配下にあるActionとFormをマッピングする
ことだけだったんでしょうね。
(インスタンスの生成は不要だった)
もし、そうならば、理想的には
SubApplicationActionFormNamingRuleのような
ActionFormNamingRuleの実装クラスを作成し、
このクラスでSMART deployの命名規約を使ってActionFormの名前を
作成すればよかったのかもしれません。
で、BindingUtilでも、その規約に従ってActionにActionFormFormをセット
すれば、挙動としてはFormCreatorを使った場合と同じになりそうです。
SubApplicationActionPathNamingRuleと対応がとれるし、
不要なインスタンスは作成されないしで、
分かりやすい気がします。
(この対応をすることはいまのところ考えていないですけど)
> ついでとなってしまって恐縮ですが、S2StrutsにJavaDoc追加してくださって
> 非常に重宝しております!
> ありがとうございます<(_ _)>
役に立ってよかったです。
半分というかほとんど自分のために書いたのですけど(^^;
--
Nakamura Toshihiro <[E-MAIL ADDRESS DELETED]>
s2struts-dev メーリングリストの案内