我最初尝试在Spring控制器上使用Spring表单标签和Validation来提交表单数据。由于我必须只更新JSP页面中的div,所以我认为我不能使用这种技术。所以我试图使用AJAX调用。以下是我到目前为止的代码片段
主JSP页面(main.JSP)
<div id="header">...</div>
<div id="content">
<div id="info1">....</info">
<div id="info2">
<%@ include file="/WEB-INF/jsp/myForm.jsp" %>
</div>
<div id="info3">...</div>
...
</div>
<div id="footer">...</div>
JSP页面(myForm.jsp)
<form:form action="/postFormData.htm" commandName="myEntryForm">
//All inputs using <form:input> tags
</form:form>
Spring MVC Controller
@RequestMapping(value = "/telephone/sendMemberEntryEmail.htm", method = RequestMethod.POST)
public ModelAndView doSomeWork(Model model, @Valid MyEntryForm myEntryForm, BindingResult result) {
if(result.hasErrors()) {
return new ModelAndView("myForm", "myEntryForm", myEntryForm);
}
return new ModelAndView("successPage");
}
所以在这里我试图将响应(包括错误或成功)发送到名为info2的div。我面临的问题是,因为我正在使用操作,它正在更新整个主页的响应。
因为我正在考虑做AJAX调用,但我不确定如何收集表单数据并发送到控制器。我不能将每个字段作为参数发送,因为我有许多字段和相关字段的集合。我想使用MyEntryForm对象发送ti。
请建议。
答案 0 :(得分:1)
试试这个
$("#myEntryForm").submit(function(e){
$.ajax({
url: 'your form action url',
type: 'post',
data:$(this).serialize(),
success: function() {
alert('success');
}
})
});
在你的控制器上你应该使用@ResponseBody。