ajax从后来获取list<java类> 前台怎么拆出来
ajax后台获取到了data----js--jsp-------$.ajax({type:"POST",url:url,success:function(data){//...
ajax后台获取到了data
----js--jsp-------
$.ajax({
type: "POST",
url:url,
success: function(data){
//我怎么遍历获取两个属性
}
});
-----java--Action---
public void getCity() throws Exception{
String proId = this.act.getRequest().getParamValue("proId");
List<AddressVO> cityList=selectService.findCityListByProId(proId);
//AddressVO有 cityId cityNa两个属性
act.setOutData("cityList", cityList);
} 展开
----js--jsp-------
$.ajax({
type: "POST",
url:url,
success: function(data){
//我怎么遍历获取两个属性
}
});
-----java--Action---
public void getCity() throws Exception{
String proId = this.act.getRequest().getParamValue("proId");
List<AddressVO> cityList=selectService.findCityListByProId(proId);
//AddressVO有 cityId cityNa两个属性
act.setOutData("cityList", cityList);
} 展开
4个回答
展开全部
你在action中要这么写:
JSONArray json = JSONArray.fromObject(cityList); //把list转为了json字符串
PrintWriter out = response.getWriter();
out.print(json); //将json字符串写回了ajax的data了
然后前台这么循环(你用了ajax了,肯定用了jquery了);
success: function(data){
$.each(citys,function(i, city){
alert("第"+i+"个对象"+"cityid:"+city.cityid +"cityname"+ city.cityname);
}
}
在此解释两件事情:
1.var citys=eval("("+data+")");//转换为json对象(为什么这么用呢,解释如下:
eval本身的问题。 由于json是以”{}”的方式来开始以及结束的,在JS中,它会被当成一个语句块来处理,所以必须强制性的将它转换成一种表达式。
加上圆括号的目的是迫使eval函数在处理JavaScript代码的时候强制将括号内的表达式(expression)转化为对象,而不是作为语句(statement)来执行
)
2. $.each(citys,function(i, city){ }的使用,看jquery的api:
jQuery.each(object, [callback])
概述
通用例遍方法,可用于例遍对象和数组。
不同于例遍 jQuery 对象的 $().each() 方法,此方法可用于例遍任何对象。回调函数拥有两个参数:第一个为对象的成员或数组的索引,第二个为对应变量或内容。如果需要退出 each 循环可使回调函数返回 false,其它返回值将被忽略。
参数objectObject
需要例遍的对象或数组。
callback (可选)Function
每个成员/元素执行的回调函数。
示例描述:
例遍数组,同时使用元素索引和内容。
jQuery 代码:$.each( [0,1,2], function(i, n){
alert( "Item #" + i + ": " + n );
});描述:
例遍对象,同时使用成员名称和变量内容。jQuery 代码:$.each( { name: "John", lang: "JS" }, function(i, n){
alert( "Name: " + i + ", Value: " + n );
});
JSONArray json = JSONArray.fromObject(cityList); //把list转为了json字符串
PrintWriter out = response.getWriter();
out.print(json); //将json字符串写回了ajax的data了
然后前台这么循环(你用了ajax了,肯定用了jquery了);
success: function(data){
$.each(citys,function(i, city){
alert("第"+i+"个对象"+"cityid:"+city.cityid +"cityname"+ city.cityname);
}
}
在此解释两件事情:
1.var citys=eval("("+data+")");//转换为json对象(为什么这么用呢,解释如下:
eval本身的问题。 由于json是以”{}”的方式来开始以及结束的,在JS中,它会被当成一个语句块来处理,所以必须强制性的将它转换成一种表达式。
加上圆括号的目的是迫使eval函数在处理JavaScript代码的时候强制将括号内的表达式(expression)转化为对象,而不是作为语句(statement)来执行
)
2. $.each(citys,function(i, city){ }的使用,看jquery的api:
jQuery.each(object, [callback])
概述
通用例遍方法,可用于例遍对象和数组。
不同于例遍 jQuery 对象的 $().each() 方法,此方法可用于例遍任何对象。回调函数拥有两个参数:第一个为对象的成员或数组的索引,第二个为对应变量或内容。如果需要退出 each 循环可使回调函数返回 false,其它返回值将被忽略。
参数objectObject
需要例遍的对象或数组。
callback (可选)Function
每个成员/元素执行的回调函数。
示例描述:
例遍数组,同时使用元素索引和内容。
jQuery 代码:$.each( [0,1,2], function(i, n){
alert( "Item #" + i + ": " + n );
});描述:
例遍对象,同时使用成员名称和变量内容。jQuery 代码:$.each( { name: "John", lang: "JS" }, function(i, n){
alert( "Name: " + i + ", Value: " + n );
});
展开全部
最好获取list的时候将它转换为json类型的、
在ajax中用eval转换
用each循环获取就可以了
例如:$.post("school_QueryAllSchool.action",function(data){
eval("var mydata="+data);
$.each(mydata,function(i,item){
$("#school").append("<option value="+item.id+">"+item.school_Name+"</option>");
});
});
在ajax中用eval转换
用each循环获取就可以了
例如:$.post("school_QueryAllSchool.action",function(data){
eval("var mydata="+data);
$.each(mydata,function(i,item){
$("#school").append("<option value="+item.id+">"+item.school_Name+"</option>");
});
});
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
最好获取list的时候将它转换为json类型的、
在ajax中用eval转换
用each循环获取就可以了
例如:$.post("school_QueryAllSchool.action",function(data){
eval("var mydata="+data);
$.each(mydata,function(i,item){
$("#school").append("<option value="+item.id+">"+item.school_Name+"</option>");
});
});
在ajax中用eval转换
用each循环获取就可以了
例如:$.post("school_QueryAllSchool.action",function(data){
eval("var mydata="+data);
$.each(mydata,function(i,item){
$("#school").append("<option value="+item.id+">"+item.school_Name+"</option>");
});
});
追问
不能用,
追答
怎么个问题??我的就行耶
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你可以直接在success函数里面进行for循环遍历,应该没问题
追问
代码贴一下,我用了for循环,不行的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询