springmvc 结合ajax批量新增
生活随笔
收集整理的這篇文章主要介紹了
springmvc 结合ajax批量新增
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
目錄
- 1. 需要注意的問題
- 2. 頁面代碼
- 3. controller定義參數接收
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() {// 自增1index_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定義參數接收
實體類VisitorInfo
package cn.bitqian.entity;import java.util.Date;import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.Table;import org.springframework.format.annotation.DateTimeFormat;import com.fasterxml.jackson.annotation.JsonFormat;@Table(name="visit_info") @Entity(name="VisitorInfo") public class VisitorInfo {@Id@GeneratedValue(strategy=GenerationType.AUTO)private Integer id;private String name;@Column(name="card_no")private String cardNo;@Column(name="visitor_time") // datetime@DateTimeFormat(pattern="yyyy-MM-dd") // 頁面提交來的@JsonFormat(pattern="yyyy-MM-dd") // 服務器響應回來的json日期格式private Date visitorTime;private Integer direction; // 1進入 2 離開private Integer type; // 1. 內部 2. 外部public VisitorInfo() {}public VisitorInfo(Integer id, String name, String cardNo, Date visitorTime, Integer direction, Integer type) {super();this.id = id;this.name = name;this.cardNo = cardNo;this.visitorTime = visitorTime;this.direction = direction;this.type = type;}// setter/getter 省略}批量新增實體類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)@ResponseBodypublic 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>接收頁面的參數,需要字符串轉型為日期,需要
mvc自定義日期轉換器
或者加上注解,mvc會將字符串轉換為對應格式的日期
響應對象有日期時,解決:
總結
以上是生活随笔為你收集整理的springmvc 结合ajax批量新增的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 闪电shader_【Shader案例】怎
- 下一篇: spring mvc 入门Dispatc