[Seasar-user:17313] Re: sastrusでほかのactionに値を引き継ぐ方法

[E-MAIL ADDRESS DELETED] [E-MAIL ADDRESS DELETED]
2009年 4月 24日 (金) 16:16:38 JST


ひがさん

早速のご連絡ありがとうございます。

> SAStrutsを使う場合、1ユースケース1アクションなので、
> アクション間で、パラメータを渡すようなケースはあまりなく、
> あっても何らかのキー情報を渡すのみの場合が多いと思います。
> Strutsと同じように細かくアクションを定義していませんか。

なるほど、そうなんですね
以前Teedaを利用していて、同じような使い方ができたら
便利かなと思っていました
(処理用Action、画面表示用のActionと分け、すべてのActionは
画面表示用のActionを呼び出す)

> その場合でも、
> return "/bbb?list=";
> のようにすると、パラメータではなく、アクションフォームの
> listが渡されるようになります。

基本的には1ユースケース1アクションで実装して、
特異なケースのみ、上記の方法で受け渡したいと思います。

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

===
間違って直接送ってしまいましたので、再送しました。
===

--- Yasuo Higa  wrote:
> ひがです。
>
> > お世話になっております、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 メーリングリストの案内