主頁 > 知識庫 > springmvc 結(jié)合ajax批量新增的實現(xiàn)方法

springmvc 結(jié)合ajax批量新增的實現(xiàn)方法

熱門標簽:團購網(wǎng)站 電子圍欄 Linux服務器 科大訊飛語音識別系統(tǒng) 銀行業(yè)務 服務器配置 阿里云 Mysql連接數(shù)設置

1. 需要注意的問題

  • mvc框架的處理日期問題
  • @ResponseBody響應對象是自定義對象,響應不是json
  • @ResopnseBody響應自定義對象時,日期為是long類型的數(shù)
  • 結(jié)束數(shù)據(jù)方法的參數(shù),該如何定義?接收多個對象?

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>
						!-- 集合為自定義實體類中的結(jié)合屬性,有幾個實體類,改變下標就行了。 -->
						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"/> 內(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() {
				// 移除當前行, 通過父級來綁定...
				// $(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'/> 內(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);
				}
				
				// 把下標減少一 就行了,就是移除了。
				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'/> 內(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學得terrible… 能夠移除,我的移除是先移除所有的行,重新生成行,比較之前生成的行,少一行。

3. controller定義參數(shù)接收

批量新增實體類BatchVisitor ,定義集合接收多個對象

package cn.bitqian.entity;

import java.util.ArrayList;
import java.util.List;

/**
 * 批量新增 visitorInfo
 * @author echo lovely
 *
 */
public class BatchVisitor {
	
	private ListVisitorInfo> visitorList = new ArrayList>();

	public ListVisitorInfo> getVisitorList() {
		return visitorList;
	}

	public void setVisitorList(ListVisitorInfo> visitorList) {
		this.visitorList = visitorList;
	}
	
	public BatchVisitor() {}

}

controller方法,放實體類,實體類里面套VisitorInfo的集合

@RequestMapping(value="/batchAdd", method=RequestMethod.POST)
	@ResponseBody
	public VisitorInfo batchAddVisitor(BatchVisitor batchVisitor) {
		ListVisitorInfo> 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>	

接收頁面的參數(shù),需要字符串轉(zhuǎn)型為日期,需要
mvc自定義日期轉(zhuǎn)換器
或者加上注解,mvc會將字符串轉(zhuǎn)換為對應格式的日期

響應對象有日期時,解決:

到此這篇關于springmvc 結(jié)合ajax批量新增的文章就介紹到這了,更多相關springmvc批量新增內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • SpringMVC集成redis配置的多種實現(xiàn)方法
  • 淺談springMVC中controller的幾種返回類型
  • Spring MVC獲取HTTP請求頭的兩種方式小結(jié)
  • 解決SpringMVC項目連接RabbitMQ出錯的問題
  • SpringMVC和rabbitmq集成的使用案例
  • SpringMVC異步處理操作(Callable和DeferredResult)
  • Spring MVC數(shù)據(jù)處理和亂碼問題詳解
  • 基于IDEA創(chuàng)建SpringMVC項目流程圖解
  • SpringMVC使用@PathVariable接收參數(shù)過程解析
  • 如何理解SpringMVC

標簽:衡水 江蘇 大理 蚌埠 廣元 衢州 棗莊 萍鄉(xiāng)

巨人網(wǎng)絡通訊聲明:本文標題《springmvc 結(jié)合ajax批量新增的實現(xiàn)方法》,本文關鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權(quán)與本站無關。
  • 相關文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266