jsp传Array数组到后台
jsp页面传递对象数组到后台的需求
JSP:
//保存
$("#submitBtn").click(function(){
var flag = true;
var eachflag = true;
var len = $(".restTable tbody").find("tr").length;
var arr = new Array();
if(len != 0){
var trindex = 0;
$(".financialTable tbody tr").each(function(){
if(!eachflag){
return;
}
trindex++;
var chargeuser = new Object();
if($(this).find(".name").val().trim()==''){
layer.tips("请填写主要负责人姓名", $(".financialTable #tr_"+trindex+" .name"),{time:1000});
flag = false;
eachflag = false;
return ;
}else{
chargeuser.join_user = $(this).find(".name").val().trim();
}
if($.trim($(this).find(".sex").val())==''){
layer.tips("请选择主要负责人性别!", $(".financialTable #tr_"+trindex+" .sex"),{time:1000});
flag = false;
eachflag = false;
return;
}else{
chargeuser.sex = $(this).find(".sex").val()=="男"?0:1;
}
if($.trim($(this).find(".phone").val())==''){
layer.tips("请填写主要负责人电话", $(".financialTable #tr_"+trindex+" .phone"),{time:1000});
flag = false;
eachflag = false;
return;
}else{
if(! (/^1[3|4|5|7|8|9][0-9]\d{8}$/.test($(this).find(".phone").val().trim()))){
layer.tips("请输入正确的电话", $(".financialTable #tr_"+trindex+" .phone"),{time:1000});
flag = false;
eachflag = false;
return;
}else{
chargeuser.phone = $(this).find(".phone").val().trim();
}
}
//身份证非必输项
if($(this).find(".card").val().trim() !=''){
var reg = /(^\d{18}$)|(^\d{17}(\d|X|x)$)/;
if (!reg.test($(this).find(".card").val().trim())) {
layer.tips("请输入正确的身份证号码", $(".financialTable #tr_"+trindex+" .card"),{time:1000});
flag = false;
eachflag = false;
return;
}
} var id_card;
if($(this).find(".card").val().trim() == ''){
chargeuser.id_card = id_card;
}else{
chargeuser.id_card = $(this).find(".card").val().trim();
}
var postal_address;
if($(this).find(".address").val().trim() == ''){
chargeuser.postal_address = postal_address;
}else{
chargeuser.postal_address = $(this).find(".address").val().trim();
}
//chargeuser.memo = $(this).find(".memo").val().trim();
var memo;
if($(this).find(".memo").val().trim() == ''){
chargeuser.memo = memo;
}else{
chargeuser.memo = $(this).find(".memo").val().trim();
}
chargeuser.pk_project_vendor = pk;
arr.push(chargeuser)
})
}
if(!flag){
return;
}
$.ajax({
url:"${ctp}/basic_project/vendor/chargeuser.json",
type:"post",
dataType:"json",
data:{'arr':JSON.stringify(arr),
'pk_project_vendor':pk,
'uuid':uuid,
'pkold':pkold
},
async:false,
traditional: true,
success:function(result){
if(result.success){
layer.msg(result.msg, {time : 1000}, function() {
top.layer.close(layerIndex);
});
}else{
layer.alert(result.msg,{shift:2,closeBtn:false},function() {
top.layer.close(layerIndex);
});
}
flag = true;
eachflag = true;
}
})
})
jsp页面关键有三处:
1、定义一个数组:var arr = new Array();
2、定义一个对象,并迭代添加对象属性,最后push进数组
var chargeuser = new Object();
chargeuser.join_user = $(".financialTable .name").val();
chargeuser.sex = $(".financialTable .sex").val()=="男"?0:1;//数据库存的是int类型
chargeuser.phone = $(".financialTable .phone").val();
chargeuser.id_card = $(".financialTable .card").val();
chargeuser.postal_address = $(".financialTable .address").val();
chargeuser.memo = $(".financialTable .memo").val();
arr.push(chargeuser);
3、提交时转换数组对象:data:{'arr':JSON.stringify(arr)},
后台java接收:
jsp传Array数组到后台的更多相关文章
- angularJS前台传list数组,后台springMVC接收数组
有时候需要在前台自定义对象,然后把对象封装在list中,在传送到后台,这样的思想也比较合理 1. 前台代码 $scope.saveScore = function () { $scope.userSc ...
- JavaScript引用类型之Array数组的toString()和valueof()方法的区别
一.转换方法 1.在JavaScript中几乎所有对象都具有toLocaleString().toString和valueof()方法,因为,所有的对象都继承自Object,而前面所说的方法都是Obj ...
- JS AJAX传递List数组到后台(对象)
今天在写代码的时候,碰到的问题,百度了一下,发现原来AJAX传递List数据是可以的,之前还一直用JSON序列化(new Array()数组设置)进行传值的. var _list = {}; //等价 ...
- java前台传参json,后台用map或者实体对象接收
(一)前台传js对象,里面包含数组,后台用map接收 (1)第一种情况:数组里不包含js对象 var param ={}: param.id=id; param.name=name; var scor ...
- JavaScript的json和Array及Array数组的使用方法
1.关于json JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于ECMAScript的一个子集.也可以称为数据集和数组类似,能够存数据! //Ar ...
- Struts2之提交对象数组至后台
struts2中有许多很好的特性,比如在设置好getter和setter方法后,加上前端的匹配设置,后台即可自动将前端输入的数据转换为后台的相应的对象. 如现在传入一个Person类的对象,其中Per ...
- 多动手试试,其实List类型的变量在页面上取到的值可以直接赋值给一个js的Array数组变量
多动手试试,其实List类型的变量在页面上取到的值可以直接赋值给一个js的Array数组变量,并且数组变量可以直接取到每一个元素var array1 = '<%=yearList =>'; ...
- jsp传到java的control层的方法
jsp传到java的control层的方法1.form表单 用<input type="submit">提交,提交到后台的参数在form表单内<form meth ...
- JavaScript进阶(十)Array 数组详解
JS array 数组详解 数组的声明方法 arrayObj = new Array(); 的数组 ,并且第一位是5 数组的运算(传地址) var t2=new Array(); t2[0]=1; t ...
随机推荐
- JDK 5.0 注解知识快速进阶
1.了解注解 对于Java开发人员来说,在编写代码时,除了源程序外,还会使用Javadoc标签对类.方法或成员变量进行注释,一遍使用Javadoc工具生成和源代码配套的Javadoc文件,如@para ...
- 1.4 flask request和session
2019-1-4 18:13:57 越努力,越幸运! 还有121天,flask讲完,还有4天,总时长130天 还有13天就讲完了 一月争取看完!!! 永远不要高估自己! 今天学了request和ses ...
- share drive 无效
docker设置的share dirve怎么按都无效 试了几遍都不行,想想刚才电脑系统更新了,然后查了下百度,发现是电脑策略的问题,设置成经典的就可以了
- x86指令格式
学习于逆向工程核心原理IA-32指令章节 格式 x86指令格式 指令前缀 出现特定操作码时用作补充说明,图中的冒号前的64就是指令前缀 操作码 实际的指令,如图中的FF.89.80都是操作码 Mod ...
- Java课程寒假之《人月神话》有感之一
一.焦油坑 以前上课的时候,老师讲过早期的程序由于工作量不大,大多只需要几个人完成,随着软件规模的不断扩大,代码量直线上升,仅仅一两个人可能没有办法完成这样的任务,多以开始形成了团队的规模,焦油坑说的 ...
- PHP函数之dirname()
1. 定义和用法 dirname()函数返回路径中的目录部分.即返回去掉文件名后的目录名. 2. 参数 dirname(path): 参数 path是一个包含有指向一个文件的全路径的字符串. 3. 举 ...
- Ubuntu16.04 本地提权漏洞复测过程
一.漏洞概述 Ubuntu 16.04 版本且unprivileged_bpf_disable 权限没有关闭的情况下就会存在 提权漏洞查看方式:1,cat /proc/version 查看系统版本 2 ...
- 22.1 、react生命周期(一)
在每个react组件中都有以下几个生命周期方法~我们需要在不同阶段进行讨论 组件生命周期概述 1.初始化 在组件初始化阶段会执行 constructor static getDerivedStateF ...
- Python学习之旅(十)
Python基础知识(9):函数(Ⅰ) Python中函数的定义:是逻辑结构和过程化的一种编程方法 定义方法: def test(x): #def:定义函数的关键字 test:函数名 x:形参,也可以 ...
- RNN Train和Test Mismatch
李宏毅深度学习 https://www.bilibili.com/video/av9770302/?p=8 在看RNN的时候,你是不是也会觉得有些奇怪, Train的过程中, 是把训练集中的结果作为下 ...