[Seasar-user:20905] Re: [SAStruts]validateでStackOverflowが発生します
林満也
[E-MAIL ADDRESS DELETED]
2011年 7月 28日 (木) 12:01:11 JST
林(worar)です。
ひが様
お忙しい中、ご回答ありがとうございます。
> submitメソッドのinputを/validator/(最後に/をつける)と
> どうなりますか。
/validator/(最後に/をつける)でもダメでした。
> エラーの遷移先で、またhogeIdのデータがDBにあるかどうか等のチェック をす
> るのも
> 変な話だと思うのですが、そのへんは大丈夫ですか。
説明不足で申し訳ありませんでした。
本来のやりたかった事として、
Hogeマスタを改廃する画面でHogeEditActionがあり、
urlのパラメータで対象のデータを決定します。
改廃画面を表示する際にhogeIdの妥当性をチェックし、
データがなければ無効画面へ遷移するようにしています。
このマスタの更新処理(doUpdate)を実行する際に通常であれば、
入力項目エラー時にまた改廃画面を表示して、エラー箇所を指摘するかと思います。
正常終了の場合はindexへリダイレクトするようにしています。(※更新処理と表示処理の分離の為)
ここでエラー時の遷移先を指定する際にindex.jspとするとindex()メソッドが実行されず、
リストボックス用のList等が空の状態になって表示されてしまう為、
index()を経由させる為に、エラー時の遷移先を/hogeEdit/としていました。
上記の様な画面で、横着なユーザがURLからdoUpdateを呼び出すとどうなるかと思い
実行したところStackOverflowErrorが発生した次第です。
私のイメージとしては、doUpdateが実行されバリデーションによって
/hogeEdit/へ遷移すると思っていたのですが、/hogeEdit/doUpdateに遷移し
再びdoUpdateが実行され無限ループに入っているようです。
以上です。よろしくお願い致します。
Seasar-user メーリングリストの案内