目前我有接受tradeIds的Spring方法
春季代码
@RequestMapping(value={"/tools/searchTrades"}, produces=APPLICATION_JSON_VALUE, headers = "Content-Type=application/json", consumes=APPLICATION_JSON_VALUE, method=RequestMethod.POST)
public @ResponseBody SearchTradesVO searchTrades(
@RequestParam(value = "tradeIds", required = true) final List<String> tradeIds) {
}
Jquery的
Jquery ajax方法将tradeIds的JSON传递给控制器
$("#searchTradeIds").validate({
rules: {
tradeIds : {
required: true,
tradeIdFormat : true
}
},
submitHandler: function(form) {
$.ajax({
url : "${pageContext.request.contextPath}" + "/etfadapter/tools/searchTrades",
type : "POST",
data: JSON.stringify({tradeIds:["XXXXX10XX81", "XXXXX10XX82"]}),
dataType: 'json',
contentType: 'application/json',
success : function(msg) {
console.log(JSON.stringify(msg));
}
});
}
});
控制器应该获得List tradeid。 TradeIds以逗号分隔输入,由用户在文本区域中分隔。
Chrome开发者控制台说 -
POST http://localhost:8080/XXXXXXXXXX/etfadapter/tools/searchTrades 400 (Bad Request).
指导我这里的错误。
答案 0 :(得分:0)
将Json数据传递(POST)到http体中的控制器。因此,您应该使用@RequestBody而不是@RequestParam来接收您的json消息。