[Seasar-user:17303] Re: sastrus でほかのactionに値を引き継ぐ方法
Yasuo Higa
[E-MAIL ADDRESS DELETED]
2009年 4月 24日 (金) 10:08:19 JST
ひがです。
> お世話になっております、furukawaです。
>
> SAStrutsで他のActionへの値の引き継ぎがうまくいかず困っております。
> 以下のような処理を行いたいと思っています。
>
> 画面
> ↓ データを入力
>
> AaaAction
> ↓ Listデータを取得(現在:3件)
> データを1件削除(現在:2件)
>
> BbbAction
> ↓ AaaActionからListデータを取得(現在:2件)
>
> 画面
> 2件のデータを表示
>
> 上記の「データを1件削除」の部分で、データを追加した場合、BbbActionに渡されるデータが
> 増えているのですが、AaaActionでデータを削除しても、BbbActionに渡されるデータが
> 減っていませんでした。
>
フォワードなので、aaa.ftlから渡されたパラメータが、
BbbActionにそのままわたっているんだと思います。
AaaForm.listではなく。
SAStrutsを使う場合、1ユースケース1アクションなので、
アクション間で、パラメータを渡すようなケースはあまりなく、
あっても何らかのキー情報を渡すのみの場合が多いと思います。
Strutsと同じように細かくアクションを定義していませんか。
その場合でも、
return "/bbb?list=";
のようにすると、パラメータではなく、アクションフォームの
listが渡されるようになります。
> 値を引き継ぐ場合、どのように実装したらよいのでしょうか。
>
>
> 以下のようなソースになっております。
> aaa.ftl
> <input type="text" name="list[0]" value="10" />
> <input type="text" name="list[1]" value="20" />
> <input type="text" name="list[2]" value="30" />
>
> AaaForm.java
> public List<String> list;
>
>
> AaaAction.java
> @ActionForm
> @Resource
> protected AaaForm aaaForm;
>
> @Execute(validator = false)
> public String submit() {
> aaaForm.list.remove(list.size() - 1);
> return "/bbb";
> }
>
>
> BbbAction.java
> @ActionForm
> @Resource
> protected ActionForm aaaForm;
>
> public List<String> list;
>
> @Execute(validator = false)
> public String index() {
> list = aaaForm.list;
>
> return "aaa.ftl";
> }
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
>
Seasar-user メーリングリストの案内