1

我在使用 Spring MVC 和 Ajax 时遇到问题。我正在尝试向我的 Spring Controller 发送一个 javascript 列表,但我不能。我必须进行搜索,并且需要发送带有一些参数的列表。

4

3 回答 3

0

如果您通过 ajax 发送,则必须将列表转换为 json,这来自 spring 博客本身

$("#account").submit(function() {
    var account = $(this).serializeObject();
    $.postJSON("account", account, function(data) {
        $("#assignedId").val(data.id);
        showPopup();
    });
    return false;
});


@RequestMapping(method=RequestMethod.POST)
public @ResponseBody Map<String, ? extends Object> create(@RequestBody Account account, HttpServletResponse response) {
    Set<ConstraintViolation<Account>> failures = validator.validate(account);
    if (!failures.isEmpty()) {
        response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
        return validationMessages(failures);
    } else {
        accounts.put(account.assignId(), account);
        return Collections.singletonMap("id", account.getId());
    }
}
于 2012-07-19T08:28:00.317 回答
0

您必须将列表转换为 JSON String ,然后才能将其用作 AJAX 参数

于 2012-07-19T08:35:56.473 回答
0

SO中的这个答案可能会有所帮助

客户端的jquery ajax

$.ajax({
        type: "POST",
        url: "submit",
        data:JSON.stringify(detailsArr),
        success: function(html){
          alert( "Submitted");
            }
      });

在服务器端

@RequestMapping(value = "/search", method=RequestMethod.POST)
public String yourMethod(@RequestBody String body){
//convert body to array using JSONLib, FlexJSON or Gson
}
于 2012-07-19T08:38:03.677 回答