使用Spring形式的AJAX调用

时间:2015-02-10 20:11:55

标签: java jquery ajax spring jsp

我最初尝试在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。

请建议。

1 个答案:

答案 0 :(得分:1)

试试这个

          $("#myEntryForm").submit(function(e){
               $.ajax({
                    url: 'your form action url',
                    type: 'post',
                    data:$(this).serialize(),
                    success: function() {
                        alert('success');
                    }
                })        
           });

在你的控制器上你应该使用@ResponseBody。