springmvc 結(jié)合ajax批量新增的實(shí)現(xiàn)方法
1. 需要注意的問(wèn)題
- mvc框架的處理日期問(wèn)題
- @ResponseBody響應(yīng)對(duì)象是自定義對(duì)象,響應(yīng)不是json
- @ResopnseBody響應(yīng)自定義對(duì)象時(shí),日期為是long類(lèi)型的數(shù)
- 結(jié)束數(shù)據(jù)方法的參數(shù),該如何定義?接收多個(gè)對(duì)象?
2. 頁(yè)面代碼
<%@ 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>時(shí)間</td>
<td>direction</td>
<td>type</td>
<td>操作</td>
</tr>
<tbody id="tbody">
<tr>
<td>
<!-- 集合為自定義實(shí)體類(lèi)中的結(jié)合屬性,有幾個(gè)實(shí)體類(lèi),改變下標(biāo)就行了。 -->
<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"/>進(jìn)入
<input type="radio" value="2" name="visitorList[0].direction"/>離開(kāi)
</td>
<td>
<input type="radio" value="1" name="visitorList[0].type"/> 內(nèi)部
<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() {
// 移除當(dāng)前行, 通過(guò)父級(jí)來(lái)綁定...
// $(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'/>進(jìn)入" +
" <input type='radio' value='2' name='visitorList[" + i + "].direction'/>離開(kāi)" +
"</td>" +
"<td>" +
" <input type='radio' value='1' name='visitorList[" + i + "].type'/> 內(nèi)部" +
" <input type='radio' value='2' name='visitorList[" + i + "].type'/> 外部" +
"</td>" +
"<td>" +
" <input class='remove' type='button' value='移除'>" +
"</td>" +
"</tr>";
}
$("#tbody").append(data_str);
}
// 把下標(biāo)減少一 就行了,就是移除了。
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'/>進(jìn)入" +
" <input type='radio' value='2' name='visitorList[" + index_val + "].direction'/>離開(kāi)" +
"</td>" +
"<td>" +
" <input type='radio' value='1' name='visitorList[" + index_val + "].type'/> 內(nèi)部" +
" <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學(xué)得terrible… 能夠移除,我的移除是先移除所有的行,重新生成行,比較之前生成的行,少一行。
3. controller定義參數(shù)接收
批量新增實(shí)體類(lèi)BatchVisitor ,定義集合接收多個(gè)對(duì)象
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方法,放實(shí)體類(lèi),實(shí)體類(lèi)里面套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);
}
對(duì)于上面響應(yīng)了對(duì)象到頁(yè)面,會(huì)報(bào)錯(cuò),需要導(dǎo)入json的依賴(lài)。
<!-- json 用于響應(yīng) 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>
接收頁(yè)面的參數(shù),需要字符串轉(zhuǎn)型為日期,需要
mvc自定義日期轉(zhuǎn)換器
或者加上注解,mvc會(huì)將字符串轉(zhuǎn)換為對(duì)應(yīng)格式的日期

響應(yīng)對(duì)象有日期時(shí),解決:



到此這篇關(guān)于springmvc 結(jié)合ajax批量新增的文章就介紹到這了,更多相關(guān)springmvc批量新增內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- SpringMVC集成redis配置的多種實(shí)現(xiàn)方法
- 淺談springMVC中controller的幾種返回類(lèi)型
- Spring MVC獲取HTTP請(qǐng)求頭的兩種方式小結(jié)
- 解決SpringMVC項(xiàng)目連接RabbitMQ出錯(cuò)的問(wèn)題
- SpringMVC和rabbitmq集成的使用案例
- SpringMVC異步處理操作(Callable和DeferredResult)
- Spring MVC數(shù)據(jù)處理和亂碼問(wèn)題詳解
- 基于IDEA創(chuàng)建SpringMVC項(xiàng)目流程圖解
- SpringMVC使用@PathVariable接收參數(shù)過(guò)程解析
- 如何理解SpringMVC
相關(guān)文章
pushState實(shí)現(xiàn)Ajax無(wú)刷新頁(yè)面切換
這篇文章主要介紹了pushState實(shí)現(xiàn)Ajax無(wú)刷新頁(yè)面切換的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-11-11
AJAX javascript的跨域訪(fǎng)問(wèn)執(zhí)行
在網(wǎng)站調(diào)用加載評(píng)論等信息的時(shí)候遇到了不同域名間javascript不能執(zhí)行的問(wèn)題,一直都在加載中顯示不出來(lái),而換個(gè)網(wǎng)址訪(fǎng)問(wèn)的話(huà)就能正確顯示,一直沒(méi)去注意瀏覽器提示的錯(cuò)誤信息:2008-04-04
Ajax 向數(shù)據(jù)庫(kù)修改和添加功能(較簡(jiǎn)答)
這篇文章主要介紹了Ajax 向數(shù)據(jù)庫(kù)修改和添加功能(較簡(jiǎn)答),非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-03-03
AJAX實(shí)現(xiàn)注冊(cè)驗(yàn)證用戶(hù)名
這篇文章主要為大家詳細(xì)介紹了AJAX實(shí)現(xiàn)注冊(cè)驗(yàn)證用戶(hù)名,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-03-03
asp+ajax實(shí)現(xiàn)靜態(tài)頁(yè)面分頁(yè)的代碼
asp+ajax實(shí)現(xiàn)靜態(tài)頁(yè)面分頁(yè)的代碼...2007-11-11
jQuery的ajax傳參巧用JSON使用示例(附Json插件)
jQuery的ajax調(diào)用很方便,傳參的時(shí)候喜歡用Json的數(shù)據(jù)格式,使用示例代碼如下,感興趣的朋友可以參考下,希望對(duì)大家有所幫助2013-08-08

