这是我的ajax电话:
$.ajax({ type: 'GET',url: contextpath + '/test/location',data: {'objectValues': object.objectValues },datatype: 'json',success: function( data ) { var obj = jQuery.parseJSON( data ); } });
它给我这个URL:
?HTTP://本地主机:8080 /测试/位置objectValues [] = 1234567890&安培; objectValues [] = 0987654321
我的Spring方法签名如下所示:
@RequestMapping(value = "/location",method=RequestMethod.GET) public @ResponseBody String loadLocation(@RequestParam(value="objectValues",required=false) String[] objectValues)
为什么我为objectValues的值保持null?
解决方法
尝试将RequestParam注释值更改为:
@RequestParam(value="objectValues[]",required=false)
如果这样解决了这个问题,那么这是因为Spring和jQuery之间的参数命名不兼容,其中jQuery要放入方括号来表示参数是一个数组(我也认为PHP也喜欢这个),但是Spring没有不在乎要查看反向尝试将ajax请求的“data”参数设置为字符串:’objectValues = 1234567890& objectValues = 0987654321′