[Seasar-user:5949] Re: [S2Struts] validateのエラー表示のタイミングについて

Katsuhiko Nagashima [E-MAIL ADDRESS DELETED]
2007年 1月 30日 (火) 01:03:46 JST


永島です。

ActionMappingを取得するには
以下のように直接requestを参照するしかないです。
----
    ActionMapping mapping = (MAPPING_KEY)
request.getAttribute(Globals.MAPPING_KEY)
----

SingletonS2ContainerFactoryを利用してS2Containerを取得し、
そのS2ContainerからHttpServletRequestを取得するようにすれば、
----
ActionMessages errors = actionForm.validate(mapping, request);
----
の処理をUtil等のstaticなメソッド内で定義し提供することができると思います。

以上です。

07/01/29 に 石浦弘久<[E-MAIL ADDRESS DELETED]> さんは書きました:
> 石浦と申します。
>
> ActionFormとActionそれぞれでvalidateしている際に、
> 両者のエラー表示のタイミングを合わせたいと考えています。
>
> 具体的には、
> フィールドAに関してActionFormの側で@Requiredチェックを行い、
> フィールドBに関してActionの側でデータベースにアクセスして
> 二重登録をチェックしています。
>
> 従来のStrutsであれば、
> 1.struts-config.xmlのアクションマッピングの定義にて
> validate=false と指定
>
> 2.Actionのexecuteの先頭にて、
> ActionMessages errors = actionForm.validate(mapping, request);
> を呼び出す
>
> のようにして、
> ValidatorPlugIn、ValidatorForm.validate、Actionのそれぞれで
> 記述した検証ロジックの表示のタイミングを統一できました。
>
> 無設定Strutsを利用すると、
> ActionMessages errors = actionForm.validate(mapping, request);
> を実行するためのActionMappingがAction側で渡されてこないので
> どのようにすればいいのだろうか悩んでいます。
>
> 無設定Struts(POJOのActionを利用)でも
> S2RequestProcessorにインターセプタを割り込ませ
> 引数を強引に取得すれば、
> ActionMessages errors = actionForm.validate(mapping, request);
> のようなことが可能とは思いますが
> 他に何か良い方法はございませんでしょうか。
>
> 以上、よろしくお願いいたします。
>
>
> … 月間100万PV! Java関連技術ならTechScore http://www.techscore.com/>
> **********************************************************
> *  株式会社四次元データ(Four-Dimensional Data, Inc.)
> *  システム開発部 アプリケーショングループ
> *  Tel:06-4797-2900(代表)
> *  Fax:06-4797-2555
> *  石浦 弘久 <ishiura @ 4dd.co.jp>
> **********************************************************
>
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
>


-- 
Katsuhiko Nagashima



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