struts2 フレームワークを使用して、Web アプリケーションに次のレイアウトがあります。
main_layout.jsp
<html>
<head>
jquery is linked here
<script>
$(document).ready(function (){
$.ajaxSetup ({
cache: false
});
$("#newRecord").click(function(){
$("#content").html("loading...").load("showNewRecordEntry.action");
});
});
</script>
</head>
<body>
<div id='header'>
</div>
<div id='content_wrapper'>
<div id='navigation'>
<input type="button" id="newRecord" value="New Record" />
</div>
<div id='content'>
--- ajax is called to put contents
</div>
</div>
<div id='footer'>
</div>`
</body></html>
struts.xml
<action name="showNewRecordEntry" method="showNewRecordEntry" class="recordAction">
<result name="success">/WEB-INF/web/new_record.jsp</result>
</action>
<action name="saveRecord" method="saveRecord" class="recordAction">
<result name="success" type="redirectAction">
<param name="actionName">showRecordList</param>
</result>
<result name="input" type="redirectAction">
<param name="actionName">showNewRecordEntry</param>
</result>
<result name="error" type="redirectAction">
<param name="actionName">showNewRecordEntry</param>
</result>
</action>
<action name="showRecordList" method="showRecord" class="recordAction">
<result name="success">/WEB-INF/web/record_list.jsp</result>
</action>
new_record.jsp
<%@taglib uri="/struts-tags" prefix="s"%>
<s:form action="saveRecord">
<s:textfield name="name" />
<s:textfield name="address" />
<s:submit />
</s:form>
このページのタグ内に手動で jquery-1.8.js を追加<head>
して、Ajax 呼び出しを実行しました。メニューがナビゲーションからクリックされる<div>
と、 struts2 アクションを使用して呼び出し$.ajax
、結果を content 内にロードします<div>
。これには、アプリケーションのデータ入力フォームが含まれます。
データを struts2 アクションに送りたかったsubmit
のですが、成功したら、ページ全体を更新せずに別の struts2 アクション (レコードのリスト) を呼び出したいと思います content のみを置き換えます<div>
。また、サーバー検証エラーが発生した場合、Ajax を使用して、エラーのあるフィールドの上に検証エラー メッセージを表示する必要があります。(ページをリロードせずに)
メインページにjquery1.8.jsを手動で追加したので、struts2-jqueryプラグインを使用せずにこれを行いたいです。
送信は正常に機能しており、フォームを struts2 アクションに送信しますが、成功すると、成功アクションがページ全体をリロードします。
皆さんが私の問題の解決策を見つけるのを手伝ってくれることを願っています.
前もって感謝します。