您的位置:首页 > 编程语言 > Java开发

学习笔记——ajax传值数组对象中遇到的问题

2015-08-08 16:34 363 查看
话不多少,这个必须记下来!

使用场景是在做删除功能的时候,先要获取删除表格行的id,然后通过ajax提交到后台,ajax代码如下

var arr = new Array();
$checkOne.each(function(){
var $id = $(this).parent().parent().next();
arr.push($id.text());
});
$.ajax({
type : "post",
url : "/PCMS/item_delete.action",
data : {"arr" : arr},
success : function(){
alert("success");
closeDelete();
},
error : function(){
alert("error");
}
});


arr对象已经确定有值,然后提交到后台的struts2 action处理

public class Action{
private Object arr;
public Object getArr() {
return arr;
}
public void setArr(String arr) {
this.arr = arr;
}
public String delete(){
System.out.println(arr);
return "delete";
}
}


在delete方法中打印为null,但是前台对象中是有值的。补充一点,如果前台代码改成

data : {"arr" : "this is arr"},


delete方法可以正常打印,说明字符串作为json数据的值,可以在后台取出。

后来发现,只要在ajax代码段中加入traditional : true,这个属性就可以顺利传递数组。

如果你想要用传统的方式来序列化数据,那么就设置为 true
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ajax 对象 数组 struts2