【发布时间】:2015-02-10 20:11:54
【问题描述】:
我最初尝试在 Spring 控制器上使用 Spring 表单标签和验证来提交表单数据。由于我只需要更新 JSP 页面中的 div,我认为我不能使用这种技术。所以我正在尝试使用 AJAX 调用。以下是我到目前为止的代码的sn-p
主 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 控制器
@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。
请提出建议。
【问题讨论】:
-
尝试使用 form.serialize() 看看。您的控制器也必须更改以返回数据而不是 MAV。查看@ResponseBody注解返回数据。
标签: java jquery ajax spring jsp