JQuery Ajax向后台传递数组
2013-02-16 19:30
387 查看
需求:
在JS中向后台传递数组参数
分析:
JS中的数组是弱类型的可以放任何类型(对象、基本类型),但是如果数组中放的是对象类型,传递到后台是显示的只能是对象字符串--[object Object],原因如下:
在后台接收的时候,只能用request来接收,request.getParameterValues()方法返回的是一个String[],所以,应该是在前台传输的时候调用了对象的toString()方法,那么如果依然想传递对象怎么办?凉拌!
但是可以使用JSON字符串来实现,在后台把JSON字符串解析成JAVA对象。
也许,你要说如果是复合对象怎么办,比如如下:
Java代码
public class Person {
private String username;
private String password;
private Address addr;
}
Person对象里有个Address类型的addr属性,没关系,任何对象最终用到的属性值都是基本数据类型,只需要使用对应的包装类型parseInt、或者parseXXX解析即可。
实现:
OK,原理就是这么个。先看JS如何写:
Java代码
var as = [];
var temp = [];
for ( var int =
0; int < 5;
int++) {
temp.push('{"k":');
temp.push(int);
temp.push(',"v":');
temp.push(int);
temp.push('}');
as.push(temp.join(""));
}
//Jquery中的方法,具体参考Jquery API
$.post(
"servlet/AjaxServlet?m=putWarningRule",{"aa":as}
);
最终拼成的串就是如下样式,(只作举例)
Java代码
{"k":0,"v":0}
后台接收,不讨论任何框架,只需要HttpServletRequest即可
Java代码
String[] jsonArr = request.getParameterValues("aa[]");
在JS中向后台传递数组参数
分析:
JS中的数组是弱类型的可以放任何类型(对象、基本类型),但是如果数组中放的是对象类型,传递到后台是显示的只能是对象字符串--[object Object],原因如下:
在后台接收的时候,只能用request来接收,request.getParameterValues()方法返回的是一个String[],所以,应该是在前台传输的时候调用了对象的toString()方法,那么如果依然想传递对象怎么办?凉拌!
但是可以使用JSON字符串来实现,在后台把JSON字符串解析成JAVA对象。
也许,你要说如果是复合对象怎么办,比如如下:
Java代码
public class Person {
private String username;
private String password;
private Address addr;
}
public class Person { private String username; private String password; private Address addr; }
Person对象里有个Address类型的addr属性,没关系,任何对象最终用到的属性值都是基本数据类型,只需要使用对应的包装类型parseInt、或者parseXXX解析即可。
实现:
OK,原理就是这么个。先看JS如何写:
Java代码
var as = [];
var temp = [];
for ( var int =
0; int < 5;
int++) {
temp.push('{"k":');
temp.push(int);
temp.push(',"v":');
temp.push(int);
temp.push('}');
as.push(temp.join(""));
}
//Jquery中的方法,具体参考Jquery API
$.post(
"servlet/AjaxServlet?m=putWarningRule",{"aa":as}
);
var as = []; var temp = []; for ( var int = 0; int < 5; int++) { temp.push('{"k":'); temp.push(int); temp.push(',"v":'); temp.push(int); temp.push('}'); as.push(temp.join("")); } //Jquery中的方法,具体参考Jquery API $.post( "servlet/AjaxServlet?m=putWarningRule",{"aa":as} );
最终拼成的串就是如下样式,(只作举例)
Java代码
{"k":0,"v":0}
{"k":0,"v":0}
后台接收,不讨论任何框架,只需要HttpServletRequest即可
Java代码
String[] jsonArr = request.getParameterValues("aa[]");
String[] jsonArr = request.getParameterValues("aa[]");
相关文章推荐
- jquery ajax的data属性传递数组,后台接收
- jquery ajax像后台action中传递数组
- jquery ajax 传递数组 到后台收不到
- JQuery Ajax向后台传递数组
- 【.Net码农】jquery ajax 向后台传递数组参数示例
- jquery ajax 向后台传递数组参数示例
- jquery ajax 向后台传递数组参数
- jquery ajax 向后台传递数组参数
- jquery ajax 向后台传递数组参数示例
- jquery ajax 向后台传递数组参数示例
- jquery ajax 向后台传递数组参数示例
- jquery ajax传递多个对象或数组到后台
- jquery ajax 向后台传递数组参数示例
- jquery ajax 向后台传递数组
- JQuery Ajax向后台传递数组
- Form表单如何传递List数组对象到后台的解决办法(转)
- jQuery Ajax传递数组到asp.net web api参数为空
- js将json数组传递到后台及接收
- js传递数组到后台