/*配对后发送微博,这个需要@xx*/
function faweibo(id){
var users = new Array();
$("#friendList dd p input[type=checkbox]").each(function(i){
if($(this).attr("checked"))
users.push(encodeURIComponent($(this).val()));
});
users = toJSON(users);
$.ajax({
type:'post',
url:"/qq/pei/faweibo.do",
data:{'users':users},
success: function(data){
popfruit('send_ok',200);
});
}
上面的这个函数是当弹窗一个窗口的时候,获取用户选择的checkbox,如果选中了就将用户的id放到数组,传给后台
这里需要一个arraytoson的方法
//将一个数组转换json对象
function toJSON(obj){
var json = '({';
$.each(obj, function(k,v){
var q = typeof v == 'string' ? ~v.indexOf("'") ? '"' : "'" : '';
if (typeof v == 'object')
v = toJSON(v).slice(0,-1).substr(1);
json+= k + ':'+ q + v + q + ',';
});
return json.slice(0,-1)+'})';
};
如果后台是用php就简单多了, data:{'users':users},根本就不要转换。在java中就需要自己进行转换。
下面的parseJsonToArray就是负责转换的。
@Action(value = "faweibo", results = { @Result(name = SUCCESS, type = "json", params = {
"target", "jsonMap" }) })
public String faweibo() throws Exception {
String users = request.getParameter("users");
users = java.net.URLDecoder.decode(users, "utf-8");
List<String> u = parseJsonToArray(users);
//u中放的就是前台传过来的userId的值。
}
这里需要解析传过来的json字符串
public static List<String> parseJsonToArray(String data) {
List<String> list = new ArrayList<String>();
if (null == data || data.length() == 0) {
return null;
}
if (data.length() < 4) {
return null;
}
String temp = data.substring(2, data.length() - 2);
temp = temp.replaceAll("\\'", "");
String splitResult[] = temp.split(",");
for (int i = 0; i < splitResult.length; i++) {
list.add(splitResult[i].substring(splitResult[i].indexOf(":") + 1));
}
return list;
}
这样就可以获得前台传过来的多个参数。
这里想要要用数组来传参,而不是通过 data:{'user1':user1,''user2':user2,''user3':user3,'}这样的方式,主要是考虑如果有多个checkbox的时候,这样添加参数会很蛋疼。所以想到用数组传参来解决这个问题。
以上是自己在项目中用的解决办法,希望可以得到大家的指点。
分享到:
相关推荐
在JS中向后台传递数组参数 分析: JS中的数组是弱类型的可以放任何类型(对象、基本类型),但是如果数组中放的是对象类型,传递到后台是显示的只能是对象字符串–[object Object],原因如下: 在后台接收的时候,...
在使用MVC时,向服务器端发送POST请求时有时需要传递数组作为参数值,下面通过实例代码给大家介绍jQuery Ajax向服务端传递数组参数值的方法,一起看看吧
前端使用jquery向后台传递数组类型的参数,Java后台直接通过List类型接收,会发现无法取到参数。
google搜到的。我看大神的文章发布时间是2014年5月。亲测好用。 某度搜技术类的真真真心不行。
jsp网页通过ajax传递json数据到java的servlet中,servlet处理数据后回传json数据到jsp页面
第一种方式实现ajax异步刷新--ajax 2.需求2: 第二种方式实现ajax异步刷新--get 3.需求3: 第三种方式实现ajax异步刷新--post 4.需求4: 第四种方式实现ajax异步刷新--getJSON 5.需求5: 第五种 使用jquery发送...
jquery与java交互通过json传递数据的经典实例,必备,不可多得
21、当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递? 10 22、我们在web 应用开发过程中经常遇到输出某种编码的字符,如iso8859-1等,...
21、数组中有没有length()方法,String中有没有length()方法? 18 23、final, finally, finalize的区别。 18 24、‘==’和equals的区别? 18 25、JAVA中Object类中有哪些常用方法? 19 26、heap和stack有什么区别...
6.6.2 读取数组中的数据 6.7 疑难解惑 6.7.1 JSTL的优点 6.7.2 JSTL和EL的关系 6.8 精彩回顾 第7章 动态网站之灵魂 ——数据库应用开发 7.1 本章学习任务 7.1.1 本章知识体系. 7.1.2 实例开发任务 7.2 My SQL数据库...
38、try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后? 25 39、下面的程序代码输出的结果是多少? 25 40、final, finally, finalize的区别。 27 ...
38、try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后? 25 39、下面的程序代码输出的结果是多少? 25 40、final, finally, finalize的区别。 27 ...
ajaxmodel.war Ajax实例应用的项目文件(可直接在Tomcat中发布运行)。 \ajaxmodel\amel\html\firstAjax.jsp 显示XMLHttpRequest对象状态。 \ajaxmodel\amel\html\userReg.html 完成验证的客户端页面。...
38、try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后? 25 39、下面的程序代码输出的结果是多少? 25 40、final, finally, finalize的区别。 27 ...
• sample13.htm in运算符在数组中的使用 • sample14.htm instanceof运算符 • sample15.htm new运算符 • sample16.htm this运算符 • sample17.htm this运算符 • ...
38、try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后? 25 39、下面的程序代码输出的结果是多少? 25 40、final, finally, finalize的区别。 27 ...
从java中传递null值到javascript是没有任何危险性的,所以DWR将这个作为默认的converter,所以你自己不用再把这个converter添加到配置文件的部分中去. 基本类型的converter转换int,boolean,double等.当然还包括对应的...
38、try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后? 25 39、下面的程序代码输出的结果是多少? 25 40、final, finally, finalize的区别。 27 ...
说明:通过本参数,在非标准submit提交环境下,比如AJAX提交,可以由用户点击提交按钮以触发编辑器最新值的同步 备注:v1.1.7新添加 onPaste:剪切板粘贴回调函数 参数值:用户粘贴后需要执行的函数 说明:此函数...