首页 >web前端 >js教程 >Ajax+Struts2接收数组表单(附代码)

Ajax+Struts2接收数组表单(附代码)

php中世界最好的语言
php中世界最好的语言原创
2018-04-25 16:10:201623浏览

这次给大家带来Ajax+Struts2接收数组表单(附代码),Ajax+Struts2接收数组表单的注意事项有哪些,下面就是实战案例,一起来看一下。

下面我将通过普通表单和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=&#39;hidden&#39; name=&#39;lstStu[" + i + "].name&#39; value=&#39;" + stus[i].name + " &#39; />";
 htmlContent += "<input type=&#39;hidden&#39; name=&#39;lstStu[" + i + "].num&#39; value=&#39;" + stus[i].num + " &#39; />";
}

特殊情况

<input type=&#39;hidden&#39; name=&#39;lstStu.name&#39; value=&#39;xy1&#39; />
<input type=&#39;hidden&#39; name=&#39;lstStu.name&#39; value=&#39;xy2&#39; />
<input type=&#39;hidden&#39; name=&#39;lstStu.name&#39; value=&#39;xy3&#39; />

传单个属性时,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"
}

相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!

推荐阅读:

JSONP实现原理与案例详解

jQuery里ajax.load()方法应如何使用

以上是Ajax+Struts2接收数组表单(附代码)的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn