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