如何通过 ajax 提交对象一个 JavaScript 对象数组?

温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
机遇都是留给有准备的人
LOFTER精选
网易考拉推荐
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
阅读(6005)|
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
loftPermalink:'',
id:'fks_',
blogTitle:'ajax提交对象数组到struts2',
blogAbstract:'引入jquery转化json的js
&script type=\"text/javascript\" src=\"&%=request.getContextPath()%&/js/jquery.json-2.4.js\"&&/script&
js文件中:
//定义js对象:
function userObject(name,age){
&&&& this.name =
&&& this.age =
//提交对象数组
function submitObject{
var userArray = new Array();',
blogTag:'',
blogUrl:'blog/static/42',
isPublished:1,
istop:false,
modifyTime:1,
publishTime:0,
permalink:'blog/static/42',
commentCount:0,
mainCommentCount:0,
recommendCount:2,
bsrk:-100,
publisherId:0,
recomBlogHome:false,
currentRecomBlog:false,
attachmentsFileIds:[],
groupInfo:{},
friendstatus:'none',
followstatus:'unFollow',
pubSucc:'',
visitorProvince:'',
visitorCity:'',
visitorNewUser:false,
postAddInfo:{},
mset:'000',
remindgoodnightblog:false,
isBlackVisitor:false,
isShowYodaoAd:false,
hostIntro:'机遇都是留给有准备的人',
hmcon:'0',
selfRecomBlogCount:'0',
lofter_single:''
{list a as x}
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}1244人阅读
移动前端开发小随笔(7)
在开发的过程中。我们往往涉及到一些需求。我们拿到的数据不是一个固定的值。
如下所示:
我们可以看到一个多级树。那么我们要做的就是将选中的节点传递到后台。然后完成我们的业务需求。
于是我们循环遍历得到了选中的树节点。我们存放在一个数组中,
var list=new Array();
那么该怎么讲list这个数组传递到后台呢?我们可以看到下面的例子我们做了一个简单的处理。
就是使用JSON.stringify()将数组对象转换为一个字符串。然后我们在后台进行处理即可!
我们以jquery AJAX为例。
type: &POST&,
timeout: 80000,
url: &../systemhandler/Test.ashx?action=saveleaf&,
dataType: &json&,
data: &{'leaf':& + JSON.stringify(list) + &,'roleid':'& + id + &'}&,
beforeSend: function (XMLHttpRequest) {
success: function (msg) {
complete: function (XMLHttpRequest, textStatus) {
if (textStatus == 'timeout') {
//超时,status还有success,error等值的情况
console.log(&请求超时,请返回重试&);
error: function (err) {
console.log(&数据加载失败& + err.responseText);
});后台代码如下所示:
好了通过调试我们发现结果使我们想要的。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:152859次
积分:2302
积分:2302
排名:第14505名
原创:75篇
转载:14篇
评论:34条
(2)(1)(4)(1)(3)(5)(16)(3)(1)(3)(2)(2)(2)(3)(3)(7)(26)(5)3155人阅读
一般需要用到以下jar包:
commons-beanutils.jar
commons-collections-3.2.1.jar
commons-lang-2.6.jar
commons-logging-1.1.1.jar
ezmorph-1.0.6.jar
json-lib-2.4-jdk15.jar
可以在这里下载。不过百度一下找下资源也非常方便的呵呵。
servlet端从数据库取出来数据对象Entity,放到List&Entity& list里面。(我的Entity里面有name, country属性)然后用net.sf.json.JSONArray处理一下:
ArrayList&Entity&&list&=&(ArrayList&Entity&)&Service.getEntity();
JSONArray&jsonArray&=&JSONArray.fromObject(list);
response.getWriter().write(jsonArray.toString());
jsp端在success中解析json对象比较简单:
success:&function(data){
&&&&var&edata&=&eval(data);
&&&&for(var&i&in&edata)
&&&&&&&&alert(edata[i].name);
直接解析成对象数组的形式。
那从jsp端传递json对象数组去servlet呢?
我这里传了三个对象数组updataData, newData, deleteData,分别都是[{'name',num},{'country',str}] 的形式。应该先用JSON.stringify处理一下变成字符串,以便传递,ajax函数的data应该这么写:
data:&{'updateData':&JSON.stringify(updateData),&
&&&&'newData':&JSON.stringify(newData),&
&&&&'deleteData':&JSON.stringify(deleteData)},
Servlet端接收,其实就是把对象数组用JSONArray接收,然后对这个Array中的每个JSONObject作遍历,将其放到List里面。例举接收updataData的方式,其他两个对象数组也用同样的方式可以处理:
String&updateData&=&request.getParameter(&updateData&);
List&Entity&&updataDataList&=&new&ArrayList&Entity&();
JSONArray&jsa1&=&JSONArray.fromObject(updateData);
&&&&for(Object&obj&:&jsa1){
&&&&&&&&JSONObject&jso&=&JSONObject.fromObject(obj);
&&&&&&&&Entity&entity&=&new&Entity();
&&&&&&&&entity&.setName(jso.get(&name&).toString());
&&&&&&&&entity&.setCountry(jso.get(&country&).toString());
&&&&&&&&updataDataList.add(entity&);
经验,mark一下。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:3583次
排名:千里之外

我要回帖

更多关于 ajax提交对象数组参数 的文章

 

随机推荐