`
chenchi1985
  • 浏览: 71195 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

struts2前台对象数组传递

阅读更多

我知道的关于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代码。

分享到:
评论
2 楼 happyboyfwh 2011-10-26  
正好需要这个功能,非常感谢!
1 楼 shanjing 2011-08-20  
不评论对不起良心,真的,找了好久,多谢

相关推荐

    AJAX和struts2传递JSON数组

    在本场景中,我们将探讨如何使用AJAX来传递JSON数组,并在Struts2的Action中接收和处理这些数据。 首先,JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它易于人阅读和编写,同时也易于机器解析...

    ActionForm属性中存在对象数组如何处理

    2. 在ActionForm中声明对象数组属性,并重写`reset`方法以初始化数组。 3. 在JSP页面中动态创建表单,使用数组索引引用对象属性。 4. 在Action类中从ActionForm中获取对象数组,并进行进一步处理。 通过这种方式,...

    jquery的ajax传json对象数组到struts2的action

    本文将深入探讨如何使用jQuery的AJAX方法发送JSON对象数组到Struts2的Action,并在后端进行处理。 首先,我们了解JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于...

    基于struts2的用数组接受多个文件上传+过滤器

    在本教程中,我们将探讨如何利用Struts2框架,结合数组来实现多文件上传,并利用过滤器进行预处理,确保上传的安全性。 首先,让我们了解一下多文件上传的基本概念。在传统的HTTP请求中,每个请求只能携带一个文件...

    struts2接收数组参数demo

    亲自做了一个struts2后台接收前台jsp页面传来的数组参数demo,因为参考网上的资源如用webwork表单提交等集成到项目有问题,所以做了一个单独的demo,经测试,用表单提交类似users[0].name,users[1].name的数组参数是...

    Struts2 中集合数组生成xls 文件.doc

    本文将详细讲解如何利用Struts2处理集合数组并将其转化为XLS文件。 首先,我们需要一个`List&lt;Object&gt;`类型的集合,其中每个Object可以是包含多个属性的数据实体,这些属性将作为Excel文件中的列数据。例如,我们有...

    struts2 iterator标签遍历二维数组

    在Struts2框架中,`&lt;s:iterator&gt;`标签被广泛用于遍历集合或数组等数据结构。本文将深入探讨如何使用Struts2中的`&lt;s:iterator&gt;`标签来遍历二维数组,并通过实例代码来具体说明其用法。 ### Struts2 Iterator标签 ##...

    jQuery+json异步实现JSP和struts2之间的数据传递

    "jQuery+json异步实现JSP和struts2之间的数据传递"是一个典型的应用场景,它结合了前端JavaScript库jQuery与后端MVC框架Struts2,通过JSON这种轻量级的数据交换格式进行高效的数据交互。下面我们将详细探讨这一主题...

    Struts2中的参数传递

    1. **封装OGNL操作,实现值的传递**:Struts2通过对OGNL表达式的封装,实现从客户端传入的参数到Java对象之间的值传递。这一过程包括但不限于对各种复杂类型的处理,如数组、列表、映射等。 2. **类型转换**:为了...

    通过Ajax两种方式讲解Struts2接收数组表单的方法

    使用struts2表单传值,可以传一个或者是作为一个对象的各个属性传,都非常灵活便捷。但是如果我们需要传一个数组并希望struts正确接收,该怎么处理呢? 下面我将通过普通表单和ajax两种方式讲解。首先我们有如下一个...

    struts2支持方法上传递参数

    Struts2作为一款流行的Java Web框架,为开发者提供了丰富的功能,其中包括通过方法上传递参数的能力。这种方法使得在处理用户请求时更加灵活,不需要依赖特定的注解,而是直接通过参数名来获取界面传递的参数信息。...

    使用struts2 和ajax进行传递json数据

    使用`@Result`注解或struts.xml配置文件,可以指定一个结果类型为`json`,这样Struts2会将Action的返回对象转换成JSON格式并返回给前端。 **Ajax请求与JSON数据** 前端JavaScript代码使用XMLHttpRequest对象或现代...

    struts2与前台交互时序

    7. **值栈(Value Stack)**:Struts2的值栈是一个数据容器,它可以存储Action对象以及任何其他需要传递到视图的数据。在JSP页面中,可以直接通过OGNL(Object-Graph Navigation Language)表达式访问值栈中的数据。 ...

    struts2jar包

    在Struts2中,OGNL用于传递Action与视图之间的数据,以及在拦截器中进行表达式计算。 4. **struts2-convention-plugin.jar**:这是Struts2的约定优于配置插件,它简化了Action类和结果配置,使得开发者可以按照一定...

    Struts2返回JSON对象的方法总结完整实例

    但是,在开发工作中,对功能的升级是基于既定架构是很常见的情况。本人碰到需要用开发基于Struts2的HTTP+JSON返回... Struts2返回JSON有两种方式:1.使用Servlet的输出流写入JSON字符串;2.使用Struts2对JSON的扩展。

    struts2 向结果传参数

    总的来说,Struts2提供了多种方式来向结果传递参数,这使得它在处理复杂的业务逻辑和页面跳转时具有高度的可定制性。根据项目的具体需求,选择合适的方法可以提高代码的可维护性和效率。在实践中,结合使用不同的...

    struts2 (对象.属性)注入

    ### Struts2 (对象.属性)注入解析 #### 一、引言 随着技术的发展,Struts2框架作为Struts1的升级版本,在处理表单数据方面进行了显著改进。Struts1时代,开发者通常需要创建FormBean来封装前端传来的表单数据,这...

    Struts2+JSON_实现AJAX_返回对象和列表

    本文将详细解释如何使用Struts2和JSON来实现AJAX返回对象和列表。 首先,JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它易于人阅读和编写,同时也易于机器解析和生成。在Struts2中,JSON插件...

    Struts2_入门篇_基本配置_通配符_参数注入_内置对象获取等。。。

    本入门篇主要涵盖了Struts2的基础配置、通配符使用、参数注入以及内置对象的获取,非常适合初学者进行学习。 1. **基础配置**:在Struts2中,基础配置主要通过`struts.xml`文件完成。这个文件定义了Action(动作)...

    struts2核心技术整理

    5. **Value Stack**:值栈是Struts2的一个重要概念,它是一个对象容器,存储Action实例和需要传递到视图的数据。视图可以直接通过OGNL(Object-Graph Navigation Language)表达式访问值栈中的对象。 二、OGNL...

Global site tag (gtag.js) - Google Analytics