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