- PR -

ActionMappingで画面遷移する際に変数を渡したい

1
投稿者投稿内容
てん
会議室デビュー日: 2007/04/06
投稿数: 3
投稿日時: 2007-08-24 11:20
はじめまして。

サーブレットからサーブレットへの遷移で
現状のコーディングでは

response.sendRedirect("xxx.do?hensu=abcde");

という形でGETの形で変数を送っていたのですが、
StrutsのActionMappingを使って

mapping.findForward("success");
(successはstruts-config.xmlでredirect=trueで定義済み)

の方法で遷移させたいのですが、
この場合先のsendRedirectで送信していた変数を
送信する方法はあるのでしょうか。

ご存知の方がいたらぜひご教授ください。
小僧
ぬし
会議室デビュー日: 2002/08/14
投稿数: 526
投稿日時: 2007-08-24 12:56
リダイレクトの書き方が違うだけで、内部の動作は
代わらないと思うので、クエリストリングに設定する
方法しかないと思うのですが。リダイレクトしなければ
セッションとかにも設定できるんですがね。
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2007-08-24 13:06
コード:
return mapping.findForward("success");


となっているようなコードを、
コード:
ActionForward forward1 = mapping.findForward("success");
ActionForward forward2 = new ActionForward();
if(forward1 != null){
    forward2.setRedirect(true);
    forward2.setPath(forward1.getPath() + "?foo=bar");
    forward2.setName(forward1.getName());
    forward2.setContextRelative(forward1.getContextRelative());
}else{
    forward2 = null;
}
return forward2;


のように、独自でフォワードを作成して返すのはいかがでしょうか。
上記コードはほんの一例に過ぎないですが、
独自に好きなアクションフォワードを返すことによって、
アクション内から自由に画面遷移をコントロールできます。

1

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