前台ajax传数组时,前台要封装成json格式 --JSON.stringify(array),同时设置 traditional : true;否则Java端接收值为null
js代码
var array=new Array("Saab","Volvo","BMW");
$.ajax({
type: 'GET',
contentType: 'application/json',
url: "/getsystemstatics.html",
data : {
array: JSON.stringify(array) //前台要封装成json格式
},
traditional : true,
dataType: "jsonp",
jsonp: "jsonpCallback",
success: function(data){
},
error: function(){
}
});
Java代码
@ResponseBody
@RequestMapping(value = "/getsystemstatics", method = RequestMethod.GET)
public void getSysStatics(HttpServletRequest request, HttpSession session, HttpServletResponse response) {
try {
response.setContentType("text/plain");
response.setHeader("Pragma", "No-cache");
response.setHeader("Cache-Control", "no-cache");
response.setDateHeader("Expires", 0);
Map<String, Object> map = new HashMap<String, Object>();
String array= request.getParameter("array");
if (array!= null && !"".equals(array)) {
map.put("status", "200");
} else {
map.put("status", "404");
}
PrintWriter out = response.getWriter();
JSONObject resultJSON = JSONObject.fromObject(map); // 根据需要拼装json
String jsonpCallback = request.getParameter("jsonpCallback");// 客户端请求参数
out.println(jsonpCallback + "(" + resultJSON.toString(1, 1) + ")");// 返回jsonp格式数据
out.flush();
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}