我知道的关于action接收前台的对象数组的方式有两种
1.在input标签中利name属性进行设置
<input name="studentList[0].name">
2.通过ajax来传递
var billList = [];
$('#data_tab tr').each(function(index, tr) {
tr = $(tr);
billList.push({
channelId : $('#channel option:selected').val(),
serviceId : tr.find('td:nth-child(1) a').attr('service_id'),
serviceName : tr.find('td:nth-child(1) a').html().trim(),
playTime : $('#playTime').val() + ' ' + tr.find('td:nth-child(2)').html() ,
duration : tr.find('td:nth-child(3)').html()
});
});
var dataPara = { channel : $('#channel option:selected').val(),
playTime:$('#playTime').val(),
billList:billList
};
// console.log(dataPara)
$.ajax({type:'post',
url:'playBillAction!save.action',
data:dataPara,
dataType:'json',
success:function(rtn) {
// console.log(rtn);
if (rtn.opResult.isSuccessed) {
alert('操作已成功!');
} else {
alert('操作失败,请稍后再试!');
}
}
});
这里用的ajax库是jquery-1.4.2,但是在实际运行的时候,发现后台action的billList属性并没有被正确赋值。跟踪后发现,前台发到服务器的参数形式是这样的:billList[0][channnelId]=1,这种方式struts2好像不支持,必须是billList[0].channelId=1样式才行。
跟踪jquery的源代码后发现,这一步是在function buildParams( prefix, obj )中完成的,把对应部分改成:
else if ( !traditional && obj != null && typeof obj === "object" ) {
// Serialize object item.
jQuery.each( obj, function( k, v ) {
buildParams( prefix + "." + k, v );
});
}
然后就可以正常接收了。
附件是修改完成的jquery代码。
分享到:
相关推荐
利用AJAX传递JSON数组,后台struts2的action接收。 详细代码简单易懂。
ActionForm属性中存在对象数组如何处理
基于struts2的用数组接受多个文件上传+过滤器 用数组接受的同时多文件上传
Struts2 中集合数组生成xls 文件.doc
亲自做了一个struts2后台接收前台jsp页面传来的数组参数demo,因为参考网上的资源如用webwork表单提交等集成到项目有问题,所以做了一个单独的demo,经测试,用表单提交类似users[0].name,users[1].name的数组参数是...
其实只有一点struts2 iterator标签遍历二维数组
google搜到的。我看大神的文章发布时间是2014年5月。亲测好用。 某度搜技术类的真真真心不行。
我们知道,Struts2完成参数传递处理工作的基础是OGNL和ValueStack。而在这个 过程中,我也把Struts2所要做的工作大致归纳为两个方面: 1. 对OGNL操作进行封装,完成OGNL表达式所表示的值到Java对象的值传递机制 2. ...
使用struts2表单传值,可以传一个或者是作为一个对象的各个属性传,都非常灵活便捷。但是如果我们需要传一个数组并希望struts正确接收,该怎么处理呢? 下面我将通过普通表单和ajax两种方式讲解。首先我们有如下一个...
struts1和struts2的区别struts1和struts2的区别struts1和struts2的区别struts1和struts2的区别struts1和struts2的区别struts1和struts2的区别struts1和struts2的区别struts1和struts2的区别struts1和struts2的区别...
一个jquery+json 数据传递的 实例工程,代码注释详细,很适合 初学者,这是我帮老弟打的,希望可以帮到其他人
但是,在开发工作中,对功能的升级是基于既定架构是很常见的情况。本人碰到需要用开发基于Struts2的HTTP+JSON返回... Struts2返回JSON有两种方式:1.使用Servlet的输出流写入JSON字符串;2.使用Struts2对JSON的扩展。
struts2与前台交互时序
后端使用struts2框架,前端使用ajax两者相互交互,传递json格式数据
struts2框架json传递后台数据到echarts,把数据从后台传递到前端。这里我用的是json的方式传递,框架是struts2
struts2 获取request session对象
在struts2中可以在方法上传递相应的参数,不需要使用注解,直接使用参数名进行界面传递参数信息,并且可以在界面进行访问
struts2-core-2.0.1.jar, struts2-core-2.0.11.1.jar, struts2-core-2.0.11.2.jar, struts2-core-2.0.11.jar, struts2-core-2.0.12.jar, struts2-core-2.0.14.jar, struts2-core-2.0.5.jar, struts2-core-2.0.6.jar,...
Struts2返回JSON对象. 通过Struts2框架返回json对象,更好传递数据
struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全...