我在使用 Spring MVC 和 Ajax 时遇到问题。我正在尝试向我的 Spring Controller 发送一个 javascript 列表,但我不能。我必须进行搜索,并且需要发送带有一些参数的列表。
问问题
5077 次
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 回答