SpringMVC學習筆記:表單提交 參數的接收
SpringMVC可以接收原生form表單和json格式數據
有一個名為Book的model,其中的屬性如下:
字符串類型的name,數字類型的price,數組類型的cover,集合類型的authors,其中集合類型中的元素又是一個Author對象,那麽前端需要發送什麽樣的數據才能完整的封裝成一個Book對象呢
如果對SpringMVC的不太熟悉可以看看我的這篇博客https://www.cnblogs.com/colin220/p/9508815.html
首先是form表單數據(編碼方式為application/x-www-form-urlencoded)
先看看controller代碼
@Controllerpublic class BookController { @PostMapping("/book/save") public ResponseEntity<?> save(Book book){ System.out.println(book.toString()); return ResponseEntity.ok("receive"); } }
controller代碼很簡單,接受參數就是剛才的Book對象
用postman模擬表單發送數據,原生form表單只能發送key-value格式的數據
如上圖所示,如果是數組,需要key值為數組的變量名,value為數組的單個值;如果是集合,首先在變量名後加上索引值,然後加上此元素的屬性名,和後端的對象屬性名一一對應好
form表單還可以上傳圖片 文檔 視頻等格式,一般使用ajax異步上傳到圖片服務器,然後返回圖片在圖片服務器上的url,並提交圖片的url
Json格式數據提交
JSON(JavaScript Object Notation)是一種輕量級的數據交換格式。JSON可由兩種結構構建:鍵值對的集合(a collection of name/value pairs)和有序的值的集合(an ordered list of values)
用Json可以傳遞很復雜的數據,仍然以上面的Book對象為例,需要傳遞哪些形式的數據呢
先看看controller方法
@Controller public classBookController { @PostMapping("/book/keep") public ResponseEntity<?> keep(@RequestBody Book book) { System.out.println(book); return ResponseEntity.ok("done"); } }
參數為Book對象,加了@ReqeustBody就可以接受Json格式的數據
用postman發送json數據
如上圖所示,json格式的數據可讀性很好,後端也能完全接受到數據
以上就是兩種數據接收的方式
SpringMVC學習筆記:表單提交 參數的接收