一、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("===================");
}