strutsフォームを含むstruts2アクションを呼び出すモーダルstruts 2 jqueryダイアログを備えたホームページがあります。
ホームページ ダイアログ コード
<s:url id="newItemURL" var="newItemURL" action="addNewItem" />
<sj:dialog id="newItem" href="%{newItemURL}" title="Create New Item" width="700" position="top" autoOpen="false"
loadingText="Loading..." />
<sj:a id="addNewItem" openDialog="newItem" button="true" buttonIcon="ui-icon-refresh">New Item</sj:a>
addNewItem アクション 結果 JSP
このフォームが送信され、成功するとテキスト結果が生成されます。
<div id="newItemForm">
<s:form action="addNewItem" id="addNewItem">
<fieldset>
<legend>Create a new item</legend>
<label for="description">Description: </label>
<s:textarea id="description" name="item.description" label="Description:" cols="20" rows="5"/><br />
<sj:submit id="submitNewItem" targets="resultNewItem" value="Submit" indicator="indicator" button="true" replaceTarget="true" />
</fieldset>
</s:form>
</div>
<div id="resultNewItem"></div>
addNewItem フォームは<sj:head />
、AJAX の結果が resultNewItem div に表示され、スタンドアロンで正常に動作します。<sj:head />
ホームページとの競合を避けるために、addNewItem JSP で削除する必要があります。
問題は、フォームの送信時に addNewItem アクションがダイアログの一部として含まれている場合に、ホームページ アクションが呼び出され、その結果、ダイアログ内に別のホームページが表示されることです。
どうすればこれを解決できますか?
編集:
Struts 構成
<action name="homepage"
class="com.actions.Homepage">
<result name="success" type="tiles">Homepage</result>
</action>
<action name="AddNewItem" class='com.actions.AddNewItem'>
<result name="success">/WEB-INF/jsp/addNewRisk/addNewRisk.jsp</result>
</action>
<action name="smoAddNewRiskINSERT" class="com.actions.AddNewItem" method="addNewRisk">
<result name="success">/WEB-INF/jsp/addNewRisk/success.jsp</result>
<result name="error">/WEB-INF/jsp/addNewRisk/error.jsp</result>
</action>
達成したいこと ユーザーがボタンをクリックしてダイアログをロードし、addNewItem フォームが作成され (AddNewItem アクション)、ユーザーがフォームを送信すると、AJAX 送信ボタンを介して送信され、結果がダイアログ内に表示されます。