[Seasar-user:21010] Re: [SAStruts]ExecuteアノテーションのstopOnValidationErrorオプションについて
前出祐吾
[E-MAIL ADDRESS DELETED]
2011年 9月 14日 (水) 02:00:36 JST
ひが様
前出です。お世話になります。
早速のご回答、ありがとうございます。
単項目精査直後に結果をリクエストに保持する際には、
Strutsが利用するActionErrosのキー名(Globals.ERROR_KEY)を
使用するのは避け、独自のキー名で保持するようにします。
中途半端な状態でActionErrorsを設定するのは避けるようにします。
また、SAStrutsはバグフィックス以外はバージョンアップされない
とのことですので、ActionWrapper#execute()をオーバーライド
する方式で行きます。
アドバイスありがとうございました。
以上、今後とも宜しくお願い致します。
(Tue Sep 13 11:56:11 2011), higayasuo wrote:
>
> ひがです。
>
> 基本的にStrutsはActionErrorsがrequestやsessionに設定されていると
> 何らかの例外が発生しているとみなすので、中途半端な状態では、
> ActionErrorsを設定することはしないようにしています。
>
> SAStrutsはバグフィックス以外はしないので、多少手を入れても
> バージョンアップで動かなくなることはないと思います。
>>
>> 前出と申します。お世話になります。
>>
>> SAStrutsとS2JDBCを利用させて頂いております。
>> SAStrutsに関して質問させてください。
>>
>> @Executeアノテーションの『stopOnValidationError=false』を使用して、
>> 単項目精査(validate)と、後続のアクションやフォームの検証メソッドに
>> よる精査を
>> 呼び出し、すべてのエラーチェックを同時に実行したいと考えております。
>>
>> また、検証メソッドによる精査は精査対象の単項目精査に合格したフィール
>> ドのみ
>> を対象にしたいと考えています。
>> そのためには、各々の項目が、単項目精査に合格しているかどうか?を
>> 知る手段が必要になります。
>> 良い方法があれば、ご教授頂けないでしょうか?
>>
>>
>> 1つの策として次のような方法を考えています。
>>
>> ・ActionWrapperクラスのexecute()メソッドをオーバーライドし、以下の処理を
>> 行う。
>>
>> 対象クラス :org.seasar.struts.action.ActionWrapper
>> 対象メソッド:execute(HttpServletRequest request,S2ExecuteConfig
>> executeConfig)
>> 処理内容:
>> executeConfig.isStopOnValidationError()の結果に関わらず、
>> processErrors(errors, request, executeConfig)を実行。
>>
>> この処理を行うことで、リクエストにActionMessages情報(errors)がセットさ
>> れます。
>>
>> ただし、この場合SAStrutsをバージョンアップされた場合に
>> 追従して行く必要があることの懸念は理解しています。
>>
>> ActionMessages情報を、その後の検証メソッドでアクセスできるスペックにして
>> いないのは、何か理由があってのことでしょうか?。教えてください。
>>
>> もし可能でしたら、SAStruts側の改修も含めご検討いただけると幸いです。
>>
>>
>> <環境>
>> sa-struts 1.0.4-sp9
>> s2-framewor 2.4.44
>> s2-extension 2.4.44
>> s2-tiger 2.4.44
>>
>> 以上、よろしくお願い致します。
>>
>>
>>
>> _______________________________________________
>> Seasar-user mailing list
>> [E-MAIL ADDRESS DELETED]
>> https://ml.seasar.org/mailman/listinfo/seasar-user
>
>
>
>
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
Seasar-user メーリングリストの案内