[Seasar-user:17235] Re: [SAStruts]Listの保持方法

Kenji Yamaguchi [E-MAIL ADDRESS DELETED]
2009年 4月 9日 (木) 11:26:52 JST


お世話になっております。
山口です。

吉田さん 
返信ありがとうございました。

>中身がnullのためにエラーになっていませんか?
そうです。
それは理解できていて、なのでSessionに保持したらいいのかな?
そんなやり方でいいのかな?
という感じでした。

>validate時の戻り先を@executeアノテーションで指定していると思いますが
>自分の場合は、戻り先をhtmlではなくメソッドを指定し、Action経由でhtmlで戻るように
なるほど!!
このようなやり方ができるのですね。
教えていただいたように修正すると思っていたように動きました。
なのでDeptを保持しているようなDtoをSerializableしていたりも不要になりました。

ありがとうございました。

-----Original Message-----
From: [E-MAIL ADDRESS DELETED] [mailto:[E-MAIL ADDRESS DELETED]] On Behalf Of Takafumi Yoshida
Sent: Thursday, April 09, 2009 10:11 AM
To: [E-MAIL ADDRESS DELETED]
Subject: [Seasar-user:17234] Re:[SAStruts]Listの保持方法

いつもお世話になります。吉田@オプティクスです。

2009/04/08 20:28 Kenji Yamaguchi <[E-MAIL ADDRESS DELETED]>:
> SAStrutsで、従業員マスタのようなものを作ろうとしています。
> 従業員マスタ画面の中には自分の部署を選択するような部署の
> プルダウンがあるようなものを想定しています。
>
> このような画面を作成する場合、部署の一覧はどのタイミングで
> 取得して、どのように保持しておけばよいのでしょうか?
> TeedaだとxxxItemsをBase64エンコードして保持するような
> itemsSaveみたいなものがありましたが、そのような考え方はあるのでしょうか?
> SAStrutsではSession保持でしょうか?
>
> Scaffoldで作成された画面をベースにEmployeeDtoを作って
> その中に下記のプロパティを持ってSerializableしました。
> public List<Dept> deptItems;
>
> このDtoを使って画面を作成した場合、1度目は正常に動くが、
> バリデータで再描画された場合に下記エラーがでてしまいました。
> HTTPステータス 500 - パス /employee に対するアクションのインスタンスがありません

validate失敗時にinputで指定された画面に遷移した際に
> public List<Dept> deptItems;
の中身がnullのためにエラーになっていませんか?

validate時の戻り先を@executeアノテーションで指定していると思いますが
自分の場合は、戻り先をhtmlではなくメソッドを指定し、Action経由でhtmlで戻るように
しています。具体的には、Actionで

protected void initList() {
   //select用のリストに値を準備..
}

@Execute(validator = false)
public void init() {
    initList();
    return "input.html";
}

@Execute(input = "init")
public String submit() {
    //validate成功後の処理
}

といった感じです。submitメソッドのinput先をメソッド名にするのがミソです:-)

> HotDeployではなくCooldeployにすると思っていたように動きました。
> ここまでで何か間違えているのでしょうか・
> 動きが違うのは何故なのでしょうか?

ここはちょっとよくわかりませんが、Serializableと関連してるかも。

> Scaffoldで作成された画面をベースにEmployeeDtoを作って
> その中に下記のプロパティを持ってSerializableしました。
> public List<Dept> deptItems;

とありますが、DeptはSerializableする必要はないように思います。
_______________________________________________
Seasar-user mailing list
[E-MAIL ADDRESS DELETED]
https://ml.seasar.org/mailman/listinfo/seasar-user




Seasar-user メーリングリストの案内