温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

springmvc结合ajax如何实现批量新增

发布时间:2020-12-04 11:24:50 来源:亿速云 阅读:178 作者:小新 栏目:web开发

这篇文章将为大家详细讲解有关springmvc结合ajax如何实现批量新增,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

1.需要注意的问题

  • mvc框架的处理日期问题
  • @ResponseBody响应对象是自定义对象,响应不是json
  • @ResopnseBody响应自定义对象时,日期为是long类型的数
  • 结束数据方法的参数,该如何定义?接收多个对象?

2. 页面代码

<%@ page language="java" isELIgnored="false" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>ajax批量新增操作</title> <script type="text/javascript" src="js/jquery-3.4.1.js"></script> </head> <body>	<form id="myForm">	<table border="1" >	<tr>	<td>姓名</td>	<td>身份证</td>	<td>时间</td>	<td>direction</td>	<td>type</td>	<td>操作</td>	</tr>	<tbody id="tbody">	<tr>	<td>	<!-- 集合为自定义实体类中的结合属性,有几个实体类,改变下标就行了。 -->	<input type="text" name="visitorList[0].name"/>	</td>	<td>	<input type="text" name="visitorList[0].cardNo"/>	</td>	<td>	<input type="date" name="visitorList[0].visitorTime"/>	</td>	<td>	<input type="radio" value="1" name="visitorList[0].direction"/>进入	<input type="radio" value="2" name="visitorList[0].direction"/>离开	</td>	<td>	<input type="radio" value="1" name="visitorList[0].type"/> 内部	<input type="radio" value="2" name="visitorList[0].type"/> 外部	</td>	<td>	<input class="remove" type="button" value="移除">	</td>	</tr>	</tbody>	<tr>	<td colspan="6">	<input id="add" type="button" value="新增visitor" />	<input id="save" type="button" value="保存"/>	</td>	</tr>	</table>	</form>	<script>	$(function() {	var index_val = 0;	$("body").on('click', '.remove', function() {	// 移除当前行, 通过父级来绑定...	// $(this).parent().parent().remove();	$("#tbody tr").remove();	// 覆盖,生成行	if (index_val > 0) {	var data_str = "";	for (var i = 0; i < index_val; i++) {	data_str +=	"<tr>" +	"<td>" +	"	<input type='text' name='visitorList[" + i + "].name'/>" +	"</td>" +	"<td>" +	"	<input type='text' name='visitorList[" + i + "].cardNo'/>" +	"</td>" +	"<td>" +	"	<input type='date' name='visitorList[" + i + "].visitorTime'/>" +	"</td>" +	"<td>" +	"	<input type='radio' value='1' name='visitorList[" + i + "].direction'/>进入" +	"	<input type='radio' value='2' name='visitorList[" + i + "].direction'/>离开" +	"</td>" +	"<td>" +	"	<input type='radio' value='1' name='visitorList[" + i + "].type'/> 内部" +	"	<input type='radio' value='2' name='visitorList[" + i + "].type'/> 外部" +	"</td>" +	"<td>" +	"	<input class='remove' type='button' value='移除'>" +	"</td>" +	"</tr>";	}	$("#tbody").append(data_str);	}	// 把下标减少一 就行了,就是移除了。	index_val --;	console.log("remove: ", index_val);	});	$("#add").click(function() {	// 自增1	index_val ++;	var data_str =	"<tr>" +	"<td>" +	"	<input type='text' name='visitorList[" + index_val + "].name'/>" +	"</td>" +	"<td>" +	"	<input type='text' name='visitorList[" + index_val + "].cardNo'/>" +	"</td>" +	"<td>" +	"	<input type='date' name='visitorList[" + index_val + "].visitorTime'/>" +	"</td>" +	"<td>" +	"	<input type='radio' value='1' name='visitorList[" + index_val + "].direction'/>进入" +	"	<input type='radio' value='2' name='visitorList[" + index_val + "].direction'/>离开" +	"</td>" +	"<td>" +	"	<input type='radio' value='1' name='visitorList[" + index_val + "].type'/> 内部" +	"	<input type='radio' value='2' name='visitorList[" + index_val + "].type'/> 外部" +	"</td>" +	"<td>" +	"	<input class='remove' type='button' value='移除'>" +	"</td>" +	"</tr>";	$("#tbody").append(data_str);	console.log("add==>" + index_val);	});	$("#save").click(function() {	var form_data = $("#myForm").serialize();	// console.log(form_data)	$.ajax({	url: "visitor/batchAdd",	type: "post",	data: form_data,	success: function(data) {	console.log(data);	},	error: function(e) {	console.log(e);	}	});	});	});	</script> </body> </html>

js学得terrible… 能够移除,我的移除是先移除所有的行,重新生成行,比较之前生成的行,少一行。

3. controller定义参数接收

批量新增实体类BatchVisitor ,定义集合接收多个对象

package cn.bitqian.entity; import java.util.ArrayList; import java.util.List; /** * 批量新增 visitorInfo * @author echo lovely * */ public class BatchVisitor {	private List<VisitorInfo> visitorList = new ArrayList<>();	public List<VisitorInfo> getVisitorList() {	return visitorList;	}	public void setVisitorList(List<VisitorInfo> visitorList) {	this.visitorList = visitorList;	}	public BatchVisitor() {} }

controller方法,放实体类,实体类里面套VisitorInfo的集合

@RequestMapping(value="/batchAdd", method=RequestMethod.POST)	@ResponseBody	public VisitorInfo batchAddVisitor(BatchVisitor batchVisitor) {	List<VisitorInfo> visitorList = batchVisitor.getVisitorList();	// System.out.println(batchVisitor);	for (VisitorInfo visitorInfo : visitorList) {	System.out.println(visitorInfo);	visitorInfoService.save(visitorInfo);	}	return new VisitorInfo(1, "dd", "bb", new Date(), 1, 2);	}

对于上面响应了对象到页面,会报错,需要导入json的依赖。

<!-- json 用于响应 responseBody -->	<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->	<dependency>	<groupId>com.fasterxml.jackson.core</groupId>	<artifactId>jackson-databind</artifactId>	<version>2.9.6</version>	</dependency>

关于springmvc结合ajax如何实现批量新增就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI