- PR -

1回目のactionで複数のページに値を設定できますか?

1
投稿者投稿内容
C'zka
ベテラン
会議室デビュー日: 2003/09/04
投稿数: 64
投稿日時: 2003-09-04 10:57
はじめまして。

現在、業務でStrutsを使用したアプリケーションを作成しています。
自分は、まだテストレベルのことしか行っていないのですが早速問題にぶつかりました。
動きとして
ログイン画面→LoginActionをキック→フレームで切った画面を呼び出す
→フレームの特定の部分のjspをロードする
このような処理を行いたいのですが、どのように設定すれば宜しいのでしょうか?
Struts-config.xmlには以下のように記述しています
<action-mappings>
   <!--一番最初にキックするActionクラス-->
<action path="/login"
type="xxx.action.LoginAction"
name="nullForm"
scope="request">
<forward name="success" path="/first.jsp"/>
</action>
   <!--フレームの一部画面に値をセットする為のActionクラスをキック-->
<action path="/tree"
type="xxx.action.TreeAction"
name="nullForm"
scope="request">
<forward name="success" path="/layouts/tree.jsp"/>
</action>
</action-mappings>

これまでに試したことは、
action path="/loginのところに
<forward name="success" path="/tree.do"/>
も追記した。結果は、呼びにはいったがtree.jspのみが表示された。

という感じです。
何か良い知恵は無いでしょうか?
よろしくお願いいたします。




PAL
ベテラン
会議室デビュー日: 2002/11/14
投稿数: 63
投稿日時: 2003-09-04 15:02
ちょっと書かれている情報だけだと分からないんですが。
first.jspでフレームセットを切っているんですよね?
一応そのフレームセットでは、a.jspとb.jspを定義していると仮定します。
そうすると、
<action path="/a"
type="xxx.action.a"
name="nullForm"
scope="request">
<forward name="success" path="/a.jsp"/>
</action>
</action-mappings>
と、bの<action>を記述すればよいと思いますが。

なお、a.jspから他のフレームに表示されているb.jspを
書き換えたい(a.jspがmenuみたいな感じ)場合は、
DHTML(JScript)でゴリゴリ書けば良いんじゃないでしょうか。
C'zka
ベテラン
会議室デビュー日: 2003/09/04
投稿数: 64
投稿日時: 2003-09-04 15:56
回答ありがとうございます。

現在、下記のような形で何とか実現できました。
1.LoginActionからTreeActionを呼ぶ
2.セッションに取得した値をセットする

これで、jspの指定なしで取り込めるようにしました。

ただ、仕様でセッションが使えないという話になるとこのままでは無理なので
教えていただいたやり方を参考にしたいと思います。

1

スキルアップ/キャリアアップ(JOB@IT)