[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 メーリングリストの案内