• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    通过Ajax两种方式讲解Struts2接收数组表单的方法

    使用struts2表单传值,可以传一个或者是作为一个对象的各个属性传,都非常灵活便捷。但是如果我们需要传一个数组并希望struts正确接收,该怎么处理呢?

    下面我将通过普通表单和ajax两种方式讲解。首先我们有如下一个实体,一个action和一个jsp。

    Student.java

    public class Student
    {
     private String name;
     private String num;
    }
    StudentAction.java
    public class StudentAction extends ActionSupport
    {
     private ListStudent> lstStu;
    }
    
    

    xy.jsp

    script type="text/javascript">
     var stus = [];
     stus.push({num:"1",name:"xy1"});
     stus.push({num:"2",name:"xy2"});
     stus.push({num:"3",name:"xy3"});
    /script>

    下面开始吧,以下代码都是写在xy.jsp的脚本区的。

    普通表单形式——遍历数组,构造表单隐藏域

    var htmlContent = "";
    for(var i=0;istus.length;i++){
     htmlContent += "input type='hidden' name='lstStu[" + i + "].name' value='" + stus[i].name + " ' />";
     htmlContent += "input type='hidden' name='lstStu[" + i + "].num' value='" + stus[i].num + " ' />";
    }

    特殊情况

    input type='hidden' name='lstStu.name' value='xy1' />
    input type='hidden' name='lstStu.name' value='xy2' />
    input type='hidden' name='lstStu.name' value='xy3' />

    传单个属性时,struts可以认识,表示3个不同的student。但是传两个属性就不行了,因为struts不知道组合。不推荐。

    ajax形式——遍历数组,构造json对象

    var param = {};
    for(var i=0;istus.length;i++){
     param["lstStu[" + i + "].name"] = stus[i].name;
     param["lstStu[" + i + "].num"] = stus[i].num;
    }
    $.ajax({
     data:param
    });

    其实我们构建了这样一个json对象

    data:{
     lstStu[0].num:"1",lstStu[0].name:"xy1",
     lstStu[1].num:"2",lstStu[1].name:"xy2",
     lstStu[2].num:"3",lstStu[0].name:"xy3"
    }

    有的人说,那直接把stus数组作为data传到Action不是很方便?答案是不能这样传,这样action接收不到或者说struts不知道怎么处理传来的数组。

    本文内容到此结束了,希望对大家有所帮助。

    您可能感兴趣的文章:
    • 简单谈谈Struts动态表单(DynamicForm)
    • Struts2中接收表单数据的三种驱动方式
    • J2EE中的struts2表单细节处理
    • 详解struts2的token机制和cookie来防止表单重复提交
    • Struts2中Action三种接收参数形式与简单的表单验证功能
    • Java的Struts框架中登陆功能的实现和表单处理器的使用
    • struts2中一个表单中提交多个请求的例子(多个提交按钮)
    • 基于Struts2实现防止表单重复提交
    上一篇:基于Jquery ajax技术实现间隔N秒向某页面传值
    下一篇:基于Jquery.history解决ajax的前进后退问题
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

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