- PR -

struts-config.xmlのforward属性について

1
投稿者投稿内容
Yasyu
会議室デビュー日: 2004/11/04
投稿数: 9
投稿日時: 2005-01-11 22:55
いつも拝見させていただいてます。

質問なのですが、struts1.2.4のサンプル(struts-example.war)で

<action path="/saveSubscription"
type="org.apache.struts.webapp.example.SaveSubscriptionAction"
name="subscriptionForm"
scope="request"
input="subscription">
<forward name="subscription" path="/subscription.jsp"/>
<forward name="success" path="/editRegistration.do?action=Edit"/>
</action>

forwardタグのpath属性にリクエスト情報(action=Edit)が設定されているのですが、
動的に設定する方法はあるでしょうか?

なお、Actionクラスに
return new ActionForward("/editRegistration.do?action=Edit",true);
このように設定する方法以外で検討しています。

よろしくお願いします。
おばけ
ぬし
会議室デビュー日: 2002/11/14
投稿数: 609
お住まい・勤務地: 東京都江東区
投稿日時: 2005-01-12 00:21
引用:

forwardタグのpath属性にリクエスト情報(action=Edit)が設定されているのですが、
動的に設定する方法はあるでしょうか?


通常、こういうことはしません。
struts-configはデプロイ時に設定された値のまま運用し、
動的に書き換えたりするものではありません。

strutsのforwardではrequestスコープに設定されたオブジェクトが保持されますから、
こちらで"action"というパラメタを動的に設定してやることで、お望みのことが実現
出来ると思います。

具体的には、javax.servlet.ServletRequest#setAttributeメソッドをご参照下さい。
Yasyu
会議室デビュー日: 2004/11/04
投稿数: 9
投稿日時: 2005-01-12 13:25
引用:

strutsのforwardではrequestスコープに設定されたオブジェクトが保持されますから、
こちらで"action"というパラメタを動的に設定してやることで、お望みのことが実現
出来ると思います。

具体的には、javax.servlet.ServletRequest#setAttributeメソッドをご参照下さい。


リクエストコンテキストに情報を設定する方法は知っていたのですが、
サンプルを見ると何か方法があるのかなぁと思ってしまいました。

勉強になりました。
ありがとうございます。
おばけ
ぬし
会議室デビュー日: 2002/11/14
投稿数: 609
お住まい・勤務地: 東京都江東区
投稿日時: 2005-01-12 19:49
あ、一応補足しておきますが、私の言っているのは「requestスコープのパラメタの設定」
であって、「requestパラメタの設定」ではありませんので、悪しからず。

javax.servlet.ServletRequest.html#setAttributeメソッドで設定したデータは、
javax.servlet.ServletRequest.html#getAttributeメソッドで取得します。javax.servlet.ServletRequest.html#getParameterメソッドではありませんので、
くれぐれもご注意下さい。
1

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