[Seasar-user:21514] Re: バリデート処理でインターセプターが後に実行されてしまいます。
Takafumi Yoshida
[E-MAIL ADDRESS DELETED]
2012年 12月 4日 (火) 14:05:02 JST
お世話になります。吉田(@zephiransas)です。
Validate時にドロップボックスの値をセットするために、Intrerceptorを使っていませんか?
これをやめたほうがいいかと。
素直に実装するなら、以下のような感じではないでしょうか。
1.IndexActionにドロップボックスの値をセットするフィールドを宣言する
public Map<String, Integer>carSizeMap;
2.IndexActionにinitメソッドを追加し、上記フィールドに値をセットする処理とindex.jsp
を返すようにする
public String init() {
carSizeMap = .....
return "index.jsp";
}
3.IndexActionのindexメソッドは上記initメソッドを呼ぶだけにする
public String index() { return init(); }
4.IndexActionのinsertメソッドのExecuteアノテーションのinput属性にinitを指定する
こうすることで、insertのvalidateで入力チェックに引っかかった場合に、initメソッドが実行されて
Mapに値をセット後、index.jspが表示されるようになる。
5.index.jspで<html:optionsCollection>の値を、IndexActionのcarSizeMapから作成するようにする
Seasar-user メーリングリストの案内