複数のフォームにStrutsを入力して、JSPページで使用できるようにする方法はありますか?
データベースから事前に入力されたカスタムデータを必要とする2つの異なるフォームを持つページを構築しています。両方のフォームが同じページにある必要があります。
strutsアクションを呼び出すと、フレームワークによって1つのフォームのみが作成されます。アクションに関連付けられているフォームです。このフォームは、execute
メソッドで提供されるパラメーターを介して利用できます。
ただし、JSPには、複数のアクションを実行するための複数のフォームが含まれている場合があります。アクションがJSPにディスパッチされる場合、タグをフォームBeanのプロパティにマップするために1つのフォームのみが処理されます。
ただし、アクションで他のフォームインスタンスを作成し、EL式を介してJSPで手動で処理することを妨げるものは何もありません。フォームBeanのインスタンスは、フォーム名でリクエストまたはセッションに配置する方が適切であるため、EL式を介して簡単にアクセスできます。
はい、可能です。
ActionForm
この問題に対して複数の実装を指定することも(推奨)、1つだけを使用することもできます。
<nested:root name="myFirstForm">
<nested:form action="/MyAction.do?method=foo" method="post">
<%-- some code --%>
</nested:form>
<nested:form action="/MyAction.do?method=bar" method="post">
<%-- some code --%>
</nested:form>
</nested:root>
<nested:root name="mySecondForm">
<nested:form action="/MyAction.do?method=foobar" method="post">
<%-- some code --%>
</nested:form>
</nested:root>
Apache Struts初心者向けFAQから:
Q:HTMLフォームごとに個別のActionForm Beanを用意する必要がありますか?
A:これは興味深い質問です。初心者として、アクションシーケンスごとに新しいActionFormを作成することをお勧めします。