1、出现400错误的原因:
传递数组时出现语法格式错误,服务器无法理解此请求。
2、解决思路:
在前端页面上将数组转化为Json串,然后在后台用Json串转化为字符串数组。
3、具体实现:
jQuery:
var photo = new Array();
$(".photoClass").each(function(){
photo.push($(this).val());
});
if(photo.length>0){
photoStr = JSON.stringify(photo);
// alert(photoStr);
}
Ajax中data参数传递:
photoStr:photoStr
Controller层【Action】:
@RequestMapping(value="toTransPhoto")
@ResponseBody
public Map<String,Object> transPhoto(
@RequestParam(value="photoStr") String photoStr,HttpServletRequest request){
Map<String,Object> map = Maps.newHashMap();
List<String> photoId = JSON.parseArray(photoStr,String.class); ...}
综上,在前端页面使用
JSON.stringify()
方法将数组转化为Json串,然后在后台使用JSON.parseArray()
方法将Json串转化为数组即可【需要引入“com.alibaba.fastjson.JSON”包】。