【问题标题】:Using AJAX call with Spring form使用 Spring 表单的 AJAX 调用
【发布时间】: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


【解决方案1】:

试试这个

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

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

【讨论】:

  • 是的,我知道那部分。现在下一个问题是如何从 JSp 中的控制器映射“结果”
  • 您需要在ajax成功中处理来自控制器的响应并进行处理。这是可以回答您问题的帖子,stackoverflow.com/questions/23267113/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多