- - PR -
Struts DynaActionFormについて
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2008-04-23 16:28
ただ今Strutsを使い、プログラムを組んでいます。
ActionFormを作る代わりに、DynaActionFormを使いプロパティーの値を取得しています。 そこで質問なのですが、一つのActionクラスで多数のDynaActionFormを扱えるのでしょうか? 例えば struts-configで <form-beans> <form-bean name="aForm" type="org.apache.struts.action.DynaActionForm" > <form-property name="a" type="java.lang.String"/> <form-property name="b" type="java.lang.String"/> <form-property name="c" type="java.lang.String"/> <form-property name="d" type="java.lang.String"/> </form-bean> <form-bean name="bForm" type="org.apache.struts.action.DynaActionForm" > <form-property name="e" type="java.lang.String"/> <form-property name="f" type="java.lang.String"/> <form-property name="g" type="java.lang.String"/> <form-property name="h" type="java.lang.String"/> </form-bean> </form-beans> <action-mappings> <action name="aForm" path="/aPath" scope="request" type="action.aAction"> <forward name="success" path="/aMain.jsp" /> </action> <action name="bForm" path="/bPath" scope="request" type="action.bAction"> <forward name="success" path="/bMain.jsp" /> </action> </action-mappings> というような場合、bActionクラスでaFormを使い、aの値を取れたりするのでしょうか? 色々調べてみたけれどよく分かりませんでした。 もし、方法があるのなら是非ご教授ください。 説明が下手で伝わりにくいとろこも多々あるかと思いますが、よろしくお願いします。 | ||||
|
投稿日時: 2008-04-25 15:41
aAction を実行後、aMain.jsp により aForm のフィールドに値がバインドされていて、その後に bAction が実行されるのであれば、aForm のオブジェクトはリクエスト変数かセッション変数に格納されています。
セッション変数に格納しておく方法を使えば、bAction#execute() メソッドの HttpServletRequest 型引数(ここでは req)に対して、以下のコード
のような方法で aForm オブジェクトが取得できると思います。 ただし、例示された struts-config.xml の aForm action 定義で scope 属性の値を "session" にしておく必要があります。 request スコープのままで取得する方法はわかりません。 (リクエスト完了時にリクエストスコープ内の情報は失われるので不可能と考えますが、確証はありません。) bAction 以降で aForm オブジェクトをセッション変数に残しておくのが好ましくなければ、明示的に s.removeAttribute("aForm") を実行してセッション変数から削除する必要があります。 [ メッセージ編集済み 編集者: Gio 編集日時 2008-04-25 15:42 ] |
1