?搭建項目
?
?
?文章來源地址http://www.zghlxwxcb.cn/news/detail-554592.html
? ? ? ? ? ? ? 然后點擊下一步完成即可搭建成功
? ? ? ? 在pom文件中導(dǎo)入lombok的jar包,幫助我們快速創(chuàng)建實體類
<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.16</version> </dependency>
創(chuàng)建實體類User和Cat
import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import java.util.List; @Data @AllArgsConstructor @NoArgsConstructor public class User { private Integer id; private String name; private String word; private Cat cat; private List<Cat> cats; }
import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @Data @AllArgsConstructor @NoArgsConstructor public class Cat { private Integer id; private String breed; private String name; }
傳遞非JSON格式的數(shù)據(jù)
主鍵:
????????@RequestParam 主要用于在Spring MVC后臺控制層獲取參數(shù),它有三個常用參數(shù)??
? ? ? ? ? ? ? ?1).? defaultValue 表示設(shè)置默認(rèn)值
? ? ? ? ? ? ? ?2). required 表示該參數(shù)是否必傳
? ? ? ? ? ? ? ?3). value 值表示接收傳入的參數(shù)的key????????
????????@PathVariable用于將請求URL中的模板變量映射到功能處理方法的參數(shù)上,即取出URL模板中的變量作為參數(shù)
? ? ? ? 1.前端請求參數(shù)的key需和后端控制層處理請求的方法參數(shù)名稱一致
@RequestMapping("get1") public void get(String name,String word){ System.out.println(name+":"+word); }
?????????2.前端請求參數(shù)的key需和后端控制層處理請求的方法參數(shù)名稱不一致
@RequestMapping("get2") public void get2(@RequestParam("n") String name,@RequestParam("w") String word){ System.out.println(name+":"+word); }
? ? ? ? ?3.前端請求參數(shù)的key和后端控制層處理請求方法的參數(shù)pojo實體類的屬性名稱一致
@RequestMapping("get3") public void get3(User user){ System.out.println(user); }
????????4.使用@PathVariable注解將請求URL中的模板變量映射到功能 處理方法的參數(shù)上,如果模板變量名稱和方法的參數(shù)名稱不同需要在@PathVariable注解上顯示的指定映射關(guān)系
@RequestMapping("get4/{name}/{word}") public void get4(@PathVariable("name") String name,@PathVariable("word") String word){ System.out.println(name+""+word); }
?
????????5.通過HttpServletRequest對象獲取數(shù)據(jù),前端請求參數(shù)的key需和getParameter(String name)方法傳遞的參數(shù)名稱一致
@RequestMapping("get5") public void get5(HttpServletRequest request){ String id = request.getParameter("id"); String name = request.getParameter("name"); String word = request.getParameter("word"); System.out.println(id+""+name+""+word); }
傳遞JSON格式的數(shù)據(jù)
? ? ? ? 如果前端通過application/json類型提交JSON格式的數(shù)據(jù)給后端控制層處理請求的方法,方法的參數(shù)必須使用@RequestBody注解進(jìn)行修飾,才能接收來自前端提交的JSON數(shù)據(jù)
@RequestMapping("get6") public void get6(@RequestBody User user){ System.out.println(user); }
? ? ? ? ? ? ? ? 1.單個實體接收參數(shù)
? ? ? ? ? ? ? ? 前端傳遞的json的數(shù)據(jù):
{ "id":1003, "name":"小元", "word":"123" }
? ? ? ? ? ? ? ? 2. 實體嵌套實體接收參數(shù)
????????????????前端傳遞的json的數(shù)據(jù):
{ "id":1, "name":"張三", "word":123, "cat":{ "id":1001, "breed":"小白", "name":"白白" } }
?
? ? ? ? ? ? ? ? 3. 實體嵌套List集合接收參數(shù)
????????????????前端傳遞的json的數(shù)據(jù):
{ "id":1, "name":"張三", "word":123, "cat":{ "id":1001, "breed":"小白", "name":"白白" }, "cats":[ { "id":1002, "breed":"小黑", "name":"黑黑" }, { "id":1003, "breed":"小啟", "name":"啟啟" }, { "id":1004, "breed":"小藍(lán)", "name":"藍(lán)藍(lán)" } ] }
?
? ? ? ? ? ? ? ? 4. Map集合接收參數(shù)
@RequestMapping("get7") public void add10(@RequestBody Map<String,Object> m){//傳遞List類型的集合數(shù)據(jù) Integer id = (Integer) m.get("id"); String name = (String) m.get("name"); String word = (String) m.get("word"); System.out.println(id+"\t"+name+":"+word); System.out.println("========"); Map<String,Object> cat = (Map<String, Object>) m.get("cat"); Set<String> s = cat.keySet(); for (String s1 : s) { System.out.println(s1+":"+ cat.get(s1)); } System.out.println("========"); List< Map<String,Object>> course = (List<Map<String, Object>>) m.get("cats"); for (Map<String, Object> cs : course) { Set<Map.Entry<String, Object>> e = cs.entrySet(); for (Map.Entry<String, Object> ss : e) { System.out.println(ss.getKey()+":"+ss.getValue()); } } }
????????????????前端傳遞的json的數(shù)據(jù):
{ "id":1, "name":"張三", "word":"123", "cat":{ "id":1001, "breed":"小白", "name":"白白" }, "cats":[ { "id":1002, "breed":"小黑", "name":"黑黑" }, { "id":1003, "breed":"小啟", "name":"啟啟" }, { "id":1004, "breed":"小藍(lán)", "name":"藍(lán)藍(lán)" } ] }
文章來源:http://www.zghlxwxcb.cn/news/detail-554592.html
?
到了這里,關(guān)于Spring接收前端傳遞數(shù)據(jù)的方式的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!