SpringMVC請(qǐng)求數(shù)據(jù)詳解講解
一、RequestMapping注解
RequestMapping注解的作用是建立請(qǐng)求URL和處理方法之間的對(duì)應(yīng)關(guān)系
RequestMapping注解可以作用在方法和類(lèi)上
- 作用在類(lèi)上:第一級(jí)的訪(fǎng)問(wèn)目錄
- 作用在方法上:第二級(jí)的訪(fǎng)問(wèn)目錄
- 細(xì)節(jié):路徑可以不編寫(xiě) / 表示應(yīng)用的根目錄開(kāi)始
1、RequestMapping的屬性
path 指定請(qǐng)求路徑的url
value value屬性和path屬性是一樣的
mthod 指定該方法的請(qǐng)求方式
@Controller @RequestMapping(path = "/role") // 一級(jí)請(qǐng)求路徑 public class RoleController { /** * /role/save * method="當(dāng)前方法允許請(qǐng)求方式能訪(fǎng)問(wèn)" * params="請(qǐng)求路徑上傳參數(shù)" * @return */ @RequestMapping(path = "/save",method = {RequestMethod.GET}) public String save(){ System.out.println("保存角色..."); return "suc"; } @RequestMapping(value = "/delete") public String delete(){ System.out.println("刪除角色..."); return "suc"; } }
2、RequestMapping的請(qǐng)求參數(shù)綁定
(1). 綁定機(jī)制
- 表單提交的數(shù)據(jù)都是k=v格式的 username=haha&password=123
- SpringMVC的參數(shù)綁定過(guò)程是把表單提交的請(qǐng)求參數(shù),作為控制器中方法的參數(shù)進(jìn)行綁定的
- 要求:提交表單的name和參數(shù)的名稱(chēng)是相同的
(2). 支持的數(shù)據(jù)類(lèi)型
- 基本數(shù)據(jù)類(lèi)型和字符串類(lèi)型
- 實(shí)體類(lèi)型(JavaBean)
- 集合數(shù)據(jù)類(lèi)型(List、map集合等)
? 基本數(shù)據(jù)類(lèi)型和字符串類(lèi)型
- 提交表單的name和參數(shù)的名稱(chēng)是相同的
- 區(qū)分大小寫(xiě)
? 實(shí)體類(lèi)型(JavaBean)
- 提交表單的name和JavaBean中的屬性名稱(chēng)需要一致
- 如果一個(gè)JavaBean類(lèi)中包含其他的引用類(lèi)型,那么表單的name屬性需要編寫(xiě)成:對(duì)象.屬性 例如:address.name
- 給集合屬性數(shù)據(jù)封裝
- JSP頁(yè)面編寫(xiě)方式:list[0].屬性
二、RequestParam注解
作用:把請(qǐng)求中的指定名稱(chēng)的參數(shù)傳遞給控制器中的形參賦值
屬性
- ? value:請(qǐng)求參數(shù)中的名稱(chēng)
- ? required:請(qǐng)求參數(shù)中是否必須提供此參數(shù),默認(rèn)值是true,必須提供
代碼如下
import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; @Controller @RequestMapping("/dept") public class DeptController { @RequestMapping("/save") public String save(@RequestParam(value = "username",required = false) String name){ System.out.println(name); return "suc"; } }
三、RequestBody注解
作用:用于獲取請(qǐng)求體的內(nèi)容(注意:get方法不可以):將前端的json對(duì)象轉(zhuǎn)換成javabean實(shí)體對(duì)象
屬性
required:是否必須有請(qǐng)求體,默認(rèn)值是true
代碼如下
@RequestMapping("/save2") public String save2(@RequestBody Student student){ System.out.println(body); return "suc"; }
四、RestFul風(fēng)格
1、@PathVariable注解
url:
http://localhost:8080/SpringMVC/rest/commit.do/1/1
controller接收:用占位符的形式截取
//映射訪(fǎng)問(wèn)路徑 @RequestMapping("/commit.do/{p1}/{p2}") public String index(@PathVariable int p1, @PathVariable String p2, Model model){ String result = p1+p2; //Spring MVC會(huì)自動(dòng)實(shí)例化一個(gè)Model對(duì)象用于向視圖中傳值 model.addAttribute("msg", "結(jié)果:"+result); //返回視圖位置 return "suc"; }
2、使用method屬性指定請(qǐng)求類(lèi)型
用于約束請(qǐng)求的類(lèi)型,可以收窄請(qǐng)求范圍。指定請(qǐng)求謂詞的類(lèi)型如GET, POST, HEAD, OPTIONS, PUT, PATCH, DELETE, TRACE等
到此這篇關(guān)于SpringMVC請(qǐng)求數(shù)據(jù)詳解講解的文章就介紹到這了,更多相關(guān)SpringMVC請(qǐng)求數(shù)據(jù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- SpringMVC詳解如何映射請(qǐng)求數(shù)據(jù)
- Java超詳細(xì)講解SpringMVC如何獲取請(qǐng)求數(shù)據(jù)
- 關(guān)于SpringMVC請(qǐng)求域?qū)ο蟮臄?shù)據(jù)共享問(wèn)題
- SpringMVC 重新定向redirect請(qǐng)求中攜帶數(shù)據(jù)方式
- 使用springmvc的controller層獲取到請(qǐng)求的數(shù)據(jù)方式
- Springmvc獲取前臺(tái)請(qǐng)求數(shù)據(jù)過(guò)程解析
- Springmvc處理ajax請(qǐng)求并返回json數(shù)據(jù)
- SpringMVC 跨重定向請(qǐng)求傳遞數(shù)據(jù)的方法實(shí)現(xiàn)
- SpringMVC解析JSON請(qǐng)求數(shù)據(jù)問(wèn)題解析
相關(guān)文章
Java基礎(chǔ)夯實(shí)之線(xiàn)程問(wèn)題全面解析
操作系統(tǒng)支持多個(gè)應(yīng)用程序并發(fā)執(zhí)行,每個(gè)應(yīng)用程序至少對(duì)應(yīng)一個(gè)進(jìn)程?。進(jìn)程是資源分配的最小單位,而線(xiàn)程是CPU調(diào)度的最小單位。本文將帶大家全面解析線(xiàn)程相關(guān)問(wèn)題,感興趣的可以了解一下2022-11-11Mybatis查詢(xún)時(shí)數(shù)據(jù)丟失的問(wèn)題及解決
Mybatis查詢(xún)時(shí)數(shù)據(jù)丟失的問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-01-01spring單元測(cè)試下模擬rabbitmq的實(shí)現(xiàn)
這篇文章主要介紹了spring單元測(cè)試下模擬rabbitmq的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-05-05SpringCloud Gateway網(wǎng)關(guān)功能介紹與使用
SpringCloud Gateway 是 Spring Cloud 的一個(gè)全新項(xiàng)目,它旨在為微服務(wù)架構(gòu)提供一種簡(jiǎn)單有效的統(tǒng)一的 API 路由管理方式。這篇文章主要介紹了SpringCloud Gateway網(wǎng)關(guān)作用,需要的朋友可以參考下2022-12-12