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

 更新时间:2015年10月27日 15:05:43   投稿:mrr  
使用struts2表单传值,可以传一个或者是作为一个对象的各个属性传,都非常灵活便捷。但是如果我们需要传一个数组并希望struts正确接收,该怎么处理呢?接下来,通过本文给大家介绍通过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 List<Student> 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;i<stus.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;i<stus.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不知道怎么处理传来的数组。

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

相关文章

  • Ajax与用户交互的JSON数据存储格式

    Ajax与用户交互的JSON数据存储格式

    数据存储是JavaScript的核心功能,适当的存放好数据,就有利于我们组织起结构,又能使应用程序稍后访问这些内容更加容易。这篇文章给大家介绍了Ajax与用户交互的JSON数据存储格式,感兴趣的朋友一起看看吧
    2016-11-11
  • ajax的工作原理以及异步请求的封装介绍

    ajax的工作原理以及异步请求的封装介绍

    客户端通过浏览器的内置对象XMLHttpRequest来发送异步请求,当服务器返回响应时,会调用先前注册的回调函数,异步请求不会阻塞客户端的操作,达到页面无法刷新就可以更新数据的效果
    2013-09-09
  • 面试必备之ajax原始请求

    面试必备之ajax原始请求

    AJAX可以使网页实现异步更新,这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新,下面这篇文章主要给大家介绍了关于ajax原始请求的相关资料,需要的朋友可以参考下
    2021-12-12
  • Ajax读取数据到表格的实现代码

    Ajax读取数据到表格的实现代码

    前两篇我们讲了 ajax开始的准备 与及如何使用ajax技术进行简单的数据读取.
    2010-10-10
  • Ajax向后台传json格式的数据出现415错误的原因分析及解决方法

    Ajax向后台传json格式的数据出现415错误的原因分析及解决方法

    ajax往后台传json格式数据报415错误,什么原因导致的呢,该怎么解决呢?下面脚本之家小编给大家带来了Ajax向后台传json格式的数据出现415错误的原因分析及解决方法感兴趣的朋友一起看看吧
    2016-10-10
  • 基于Ajax技术实现考试倒计时并自动提交试卷

    基于Ajax技术实现考试倒计时并自动提交试卷

    这篇文章主要介绍了基于Ajax技术实现考试倒计时并自动提交试卷 的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-06-06
  • 原生ajax调用数据实例讲解

    原生ajax调用数据实例讲解

    这篇文章主要向大家介绍了原生ajax调用数据实例,具有一定的参考价值,感兴趣的朋友可以参考一下
    2016-01-01
  • 基于Ajax的formData图片和数据上传

    基于Ajax的formData图片和数据上传

    这篇文章主要为大家详细介绍了基于Ajax的formData图片和数据上传相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-05-05
  • Ajax中要注意的问题

    Ajax中要注意的问题

    Ajax中要注意的问题...
    2007-04-04
  • 关于ajax异步访问数据的问题

    关于ajax异步访问数据的问题

    这篇文章主要介绍了ajax异步访问数据的问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-08-08

最新评论