我在使用 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>
。这包括我的应用程序中的数据输入表。
我想submit
将数据发送到 struts2 操作,成功后我想调用另一个 struts2 操作(记录列表),而不刷新整个页面,仅替换内容<div>
。并且在服务器验证错误的情况下,使用 Ajax,验证错误消息必须显示在有错误的字段顶部。(无需重新加载页面)
我想在不使用 struts2-jquery 插件的情况下执行此操作,因为我已经在我的主页中手动添加了 jquery1.8.js。
提交工作正常,它将表单提交给我的 struts2 操作,但成功后,成功操作会重新加载整个页面。
我希望你们能帮助我找到解决我的问题的方法。
提前致谢。