传输form对象和数组的方法
传输一个对象,用于修改对象字段
前端 : data序列化,传一个对象

 var formData =  $("form").serializeArray();

       //将序列化数据转为对象
       var formObject = {};
       for (var item in formData) {
           formObject[formData[item].name] = formData[item].value;
       }

       formObject["picUrl"] = picUrl;
    
        $.ajax({
            url: SERVER_URL + 'book/book/doBookEdit',
            method: 'get',
            data: formObject,
            beforeSend: function(request) {
                request.setRequestHeader("token",token);
            },              
            dataType: 'JSON',
            success: function(res) {
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
后端 : 用对象接收

 public String doBookEdit(BookInfo bookInfo){
1
传输一个带文件的对象(此方法万金油,后端只需用对象啥都能接收)
前端 : data为表单序列化,设置contentType: false, processData: false,文件如果为多个,name确保一致

     $.ajax({
            url: SERVER_URL + 'nanjing/realName/update',
            contentType: false,
            processData: false,
            data:new FormData($("#f1")[0]),
            type: 'post', //HTTP请求类型
            success:function(result){
1
2
3
4
5
6
7
后端 : 用对象接收,接收文件的属性需要是MultipartFile,如果是多个文件可用 List< MultipartFile >

public String update(TRealNameInfo bean) {
1
传输数组,通常传输id数组用于批量删除
第一种:
前端: 不加任何东西

 $.ajax({
         type: 'get',
         url: SERVER_URL + "book/book/delbookList",
         data: {
                   'bookIdList': bookIdList,
                    token: getCookie("token")
                },
         success: function (result) {
1
2
3
4
5
6
7
8
后端:用@RequestParam(value = “bookIdList[]”),(名字要对上,数组的话 " [ ] "一定要带上 )

public String delbookList(@RequestParam(value = "bookIdList[]") Long[] bookIdList)
1
第二种:

前端: 需带上 traditional:true

$.ajax({
          type : "POST",
        url : "/web/projectType/projectTypeListDelete",
        data :{ 
               "projectNames" :  projectNameList
            },    
          traditional:true ,
       success : function(data,status) {
1
2
3
4
5
6
7
8
后端:直接用数组 String[] projectNames 接收

public GMap delBatch(String[] projectNames , HttpServletRequest request) 

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>

<form action="" method="post" >
		<div><span>图书名称</span><input type="text"		name="name" /></div>
		<div><span>图书作者</span><input type="text"  name="author"/></div>
		<div><span>购买日期</span><input type="date"  name="time"/></div>
		<div><span>图书类别</span><select name="type">
		<option checked="checked" value="0">请选择分类</option>
		<option value="1">计算机/软件</option>
		<option value="2">小说/文摘</option>
		<option value="3">杂项</option>
		</select>
		</div>
		
	</form>	
<button id="bt" onclick="add()">增加</button>

</body>
<script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
<script type="text/javascript">

function add() {
var data = {};
//第一种方式是jq   name选择器
//jq方法

var formobject= $('form').serializeArray()//数组
$(formobject).each(function(){
    if(data[this.name]){
    	data[this.name]+=';'+this.value;
    }else{
    	data[this.name]=this.value;
    }
});
console.log(data);
for ( var i in data) {
	if(data[i].trim()==""){
		alert("请补全信息");
		return;
	}
}
if(data.type=="0"){
	alert("请选择图书类型");
	return;
}

	if(true){
		$.ajax( {
		    "url"            :  "addServlet",                      // 要提交的URL路径
		    "type"         :  "post",                     // 发送请求的方式
		    "data"         :  data,                      // 要发送到服务器的数据
		    "dataType" :  "text",                   // 指定传输的数据格式
		    "success"  :  function(result) {// 请求成功后要执行的代码
		    	console.log(result);
		    	
			  if(result=="true"){
				  alert("添加成功");
				  
				  window.location.href="index.jsp";
			  }else{
				  
			  }
		    	
		    },
		     "error"       :  function() { 
		    	alert("网络正忙");
			     }
		} );
	}else{
		return;
	}
	
}






</script>
</html>