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