@RequestParam到Spring Controller的字符串列表

时间:2014-06-18 15:06:49

标签: jquery spring-mvc

目前我有接受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).

指导我这里的错误。

1 个答案:

答案 0 :(得分:0)

将Json数据传递(POST)到http体中的控制器。因此,您应该使用@RequestBody而不是@RequestParam来接收您的json消息。