1. 程式人生 > >SpringMVC學習筆記:表單提交 參數的接收

SpringMVC學習筆記:表單提交 參數的接收

服務器 book postman pan json格式數據 ica 上傳圖片 異步 collect

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代碼

@Controller
public 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 class
BookController { @PostMapping("/book/keep") public ResponseEntity<?> keep(@RequestBody Book book) { System.out.println(book); return ResponseEntity.ok("done"); } }

參數為Book對象,加了@ReqeustBody就可以接受Json格式的數據

用postman發送json數據

技術分享圖片

如上圖所示,json格式的數據可讀性很好,後端也能完全接受到數據

以上就是兩種數據接收的方式

SpringMVC學習筆記:表單提交 參數的接收