一、FormData接收參數
實體類
import lombok.Data;
import java.io.Serializable;
@Data
public class User implements Serializable {
private String username;
private Integer age;
}
1、實體接收
請求html代碼
<form action="/user/formDataModel" method="post" enctype="multipart/form-data">
<input type="text" name="username" value="wh">
<input type="text" name="age" value="1">
<button type="submit">提交請求</button>
</form>
后端接收代碼
/**
* FormData接收(實體)
* @param user
* @return
*/
@RequestMapping("/formDataModel")
public String formDataModel(User user){
return "OK";
}
2、接收實體加文件
實體類
import lombok.Data;
import org.springframework.web.multipart.MultipartFile;
import java.io.Serializable;
@Data
public class User implements Serializable {
private String username;
private Integer age;
private MultipartFile file;
}
請求html代碼
<form action="/user/formDataModel" method="post" enctype="multipart/form-data">
<input type="text" name="username" value="wh">
<input type="text" name="age" value="1">
<input type = "file" name = "file" id = "file" />
<button type="submit">提交請求</button>
</form>
后端接收代碼
/**
* FormData接收數組(實體+文件)
* @param user
* @return
*/
@RequestMapping("/formDataModelAndFile")
public String formDataModelAndFile(User user){
return "OK";
}
3、數組實體中包含文件
請求html代碼
<form id="uploadForm" enctype = "multipart/form-data">
<input type = "file" name = "file" id = "file" />
<input type = "button" id = "btnSave" onclick = "uploadSubmit()" value="提交"/>
</form>
</body>
<script>
function uploadSubmit() {
// var formData = new FormData(document.getElementById('uploadForm'));
const postData = new FormData();
let checklist = [
{
username: '2221',
age: '88',
file: document.getElementById('file').files[0]
},
{
username: '1111',
age: '881111',
file: document.getElementById('file').files[0]
}
];
console.log( document.getElementById('file').files[0])
for (let i = 0; i < checklist.length; i++) {
postData.append("orders[" + i + "].username", checklist[i].username);
postData.append("orders[" + i + "].age", checklist[i].age);
postData.append("orders[" + i + "].file", checklist[i].file);
}
$.ajax({
url: "http://localhost:9090/user/FormDataUser",
type: "post",
data: postData,
dataType: "json",
processData: false,
contentType: false,
success: function (result) {
console.log("上傳成功");
},
error: function (a, b, c) {
console.log("失敗了");
},
complete: function () {
console.log("請求最后處理的方法");
},
})
// var request = new XMLHttpRequest();
// request.open("POST", "http://localhost:9090/user/FormDataUser")
// request.send(postData);
}
</script>
后端接收
/**
* FormData接收數組(數組中實體包含文件)
* @param request
* @param userForm
* @return
*/
@RequestMapping("/FormDataUser")
public String testFormData(HttpServletRequest request,@ModelAttribute("userForm") UserVo userForm){
System.out.println("111111=====================11111111");
return "OK";
}
實體
import lombok.Data;
import java.util.List;
@Data
public class UserVo {
private List<User> orders;
}
import lombok.Data;
import org.springframework.web.multipart.MultipartFile;
import java.io.Serializable;
@Data
public class User implements Serializable {
private String username;
private Integer age;
private MultipartFile file;
}
二、JSON數組接收參數
postman請求參數,注:選擇raw、JSON(application/json),和json格式的規范書寫

后端接收代碼,注:標簽@RequestBody的使用
/**
* JSON數組接收參數
* @param list
*/
@RequestMapping("testJson")
public void testFast(@RequestBody List<User> list){
System.out.println("===================");
}
