SpringMVC中的常用注解和用法舉例詳解
前言:
MVC是?種架構(gòu)設(shè)計(jì)模式,也?種思想,?SpringMVC是對(duì)MVC思想的具體實(shí)現(xiàn).除此之外,Spring MVC還是?個(gè)Web框架.
總結(jié)來說,Spring MVC是?個(gè)實(shí)現(xiàn)了MVC模式的We框架
1.@RequestMapping
@RequestMapping 是Spring Web MVC應(yīng)?程序中最常被?到的注解之?,它是?來注冊(cè)接?的路由映射的
路由映射:當(dāng)??訪問?個(gè)URL時(shí),將??的請(qǐng)求對(duì)應(yīng)到程序中某個(gè)類的某個(gè)?法的過程就叫路由映射
@RequestMapping既可修飾類,也可以修飾?法,當(dāng)修飾類和?法時(shí),訪問的地址是類路徑+?法路徑
@RequestMapping標(biāo)識(shí)?個(gè)類:設(shè)置映射請(qǐng)求的請(qǐng)求路徑的初始信息
@RequestMapping標(biāo)識(shí)?個(gè)?法:設(shè)置映射請(qǐng)求請(qǐng)求路徑的具體信息
@RequestMapping("/user")
@RestController
public class UserController {
@RequestMapping("/sayHi")
public String sayHi(){
return "hello,Spring MVC";
}
}訪問地址:http://127.0.0.1:8080/user/sayHi

@RequestMapping 的URL路徑也可以是多層路徑,最終訪問時(shí),依然是類路徑+?法路徑
@RequestMapping("/user/m1")
@RestController
public class UserController {
@RequestMapping("/say/hi")
public String sayHi(){
return "hello,Spring MVC";
}
}訪問路徑:http://127.0.0.1:8080/user/m1/say/hi

2.@RequestParam
用于將請(qǐng)求參數(shù)綁定到方法參數(shù)上(后端參數(shù)重命名,傳遞集合等)
@Controller
public class MyController {
@RequestMapping("/greet")
public String greet(@RequestParam("name") String name) {
// Method logic using name parameter
return "greetPage";
}
}使用@RequestParam 注解的方法參數(shù)默認(rèn)為必填參數(shù)
可以使用 required 屬性將@RequestParam配置為可選參數(shù):
@Controller
public class MyController {
@RequestMapping("/greet")
public String greet(@RequestParam(value = "name2", required = false) String name) {
// Method logic using name parameter
return "greetPage";
}
}3.@RequestBody
用于將 HTTP 請(qǐng)求體中的數(shù)據(jù)綁定到控制器方法的參數(shù)上,即獲取 POST 請(qǐng)求中的數(shù)據(jù)并映射到方法參數(shù)。它通常用于處理 JSON 或 XML 格式的請(qǐng)求體數(shù)據(jù)
@Controller
@RequestMapping("/example")
public class ExampleController {
@RequestMapping(value = "/addUser", method = RequestMethod.POST)
@ResponseBody
public String addUser(@RequestBody User user) {
// 處理用戶數(shù)據(jù)
return "User added successfully!";
}
}
在上述示例代碼中,@RequestBody 用于將 HTTP 請(qǐng)求體中的數(shù)據(jù)轉(zhuǎn)換成 User 對(duì)象,并將其作為參數(shù)傳遞給 addUser() 方法進(jìn)行處理
4.@PathVariable
path variable:路徑變量
和字?表達(dá)的意思?樣,這個(gè)注解主要作?在請(qǐng)求URL路徑上的數(shù)據(jù)綁定,默認(rèn)傳遞參數(shù)寫在URL上,SpringMVC就可以獲取到
@RequestMapping("/m8/{id}/{name}")
public String method8(@PathVariable Integer id, @PathVariable("name") String
userName){
return "解析參數(shù)id:"+id+",name:"+userName;
}使?瀏覽器發(fā)送請(qǐng)求:http://127.0.0.1:8080/param/m8/5/zhangsan
5.@RestController(返回頁(yè)面)
其方法的返回值會(huì)被直接寫入 HTTP 響應(yīng)體中,而不是被視圖解析器解析為視圖。通常返回的是 JSON 或 XML 數(shù)據(jù)
@RestController
@RequestMapping("/example")
public class ExampleController {
@RequestMapping(value = "/hello", method = RequestMethod.GET)
public String hello() {
return "Hello, World!";
}
}
6.@Controller(返回視圖)
在方法中直接返回對(duì)象時(shí),Spring MVC 會(huì)將其作為模型數(shù)據(jù)傳遞給視圖解析器,然后解析為具體的視圖
@Controller
public class MyController {
@RequestMapping("/hello")
public String hello() {
return "hello.html";
}
//返回html頁(yè)面
}當(dāng)在類注解中加上 @ResponseBody 時(shí),返回的為數(shù)據(jù)而不是頁(yè)面
@RestController=@Controller (返回視圖)+ @ResponseBody(返回?cái)?shù)據(jù))
@Controller
public class MyController {
@ResponseBody
@RequestMapping("/hello")
public String hello() {
return "hello";
}
//返回“hello”這個(gè)字符串
}7.@CookieValue
簡(jiǎn)潔獲取Cookie (一次只能獲取一次cookie信息)
@RequestMapping("/getCookie")
public String cookie(@CookieValue("bite") String bite) {
return "bite:" + bite;
}8.@SessionAttribute
@SessionAttributes 注解用于指定哪些模型屬性需要存儲(chǔ)在會(huì)話中
@RequestMapping("/getSess2")
public String sess2(@SessionAttribute(value = "username",required = false)
String username) {
return "username:"+username;
}總結(jié)
到此這篇關(guān)于SpringMVC中常用注解和用法舉例詳解的文章就介紹到這了,更多相關(guān)SpringMVC常用注解用法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
json序列化時(shí)忽略值為null的字段2種方式實(shí)例
這篇文章主要給大家介紹了關(guān)于json序列化時(shí)忽略值為null的字段的2種方式,當(dāng)對(duì)象中某個(gè)字段為null時(shí),我們希望將對(duì)象轉(zhuǎn)換成json時(shí)為null的字段不會(huì)被轉(zhuǎn)換到j(luò)son字符串,里面需要的朋友可以參考下2023-10-10
SpringBoot中通過實(shí)現(xiàn)WebMvcConfigurer參數(shù)校驗(yàn)的方法示例
這篇文章主要介紹了SpringBoot中通過實(shí)現(xiàn)WebMvcConfigurer參數(shù)校驗(yàn)的方法示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11
Java實(shí)現(xiàn)在word中指定位置插入圖片
Poi-tl?是基于?Apache?POI?的?Java?開源文檔處理庫(kù),專注于高效操作?Word?文檔,本文小編就來和大家詳細(xì)講講Java如何使用Poi-tl實(shí)現(xiàn)在word中指定位置插入圖片吧2025-06-06
Maven介紹與配置+IDEA集成Maven+使用Maven命令小結(jié)
Maven是Apache軟件基金會(huì)的一個(gè)開源項(xiàng)目,是一個(gè)優(yōu)秀的項(xiàng)目構(gòu)建管理工具,它用來幫助開發(fā)者管理項(xiàng)目中的 jar,以及 jar 之間的依賴關(guān)系、完成項(xiàng)目的編譯、測(cè)試、打包和發(fā)布等工作,本文給大家介紹Maven介紹與配置+IDEA集成Maven+使用Maven命令,感興趣的朋友一起看看吧2024-01-01
使用JPA中@Query 注解實(shí)現(xiàn)update 操作方法(必看)
下面小編就為大家?guī)硪黄褂肑PA中@Query 注解實(shí)現(xiàn)update 操作方法(必看)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-06-06
SpringSecurity當(dāng)中的CSRF防范使用詳解
這篇文章主要介紹了SpringSecurity當(dāng)中的CSRF防范使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2025-05-05
java jdbc連接mysql數(shù)據(jù)庫(kù)實(shí)現(xiàn)增刪改查操作
這篇文章主要為大家詳細(xì)介紹了java jdbc連接mysql數(shù)據(jù)庫(kù)實(shí)現(xiàn)增刪改查操作,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-07-07
spring @Profiles和@PropertySource實(shí)現(xiàn)根據(jù)環(huán)境切換配置文件
這篇文章主要介紹了spring @Profiles和@PropertySource根據(jù)環(huán)境切換配置文件,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-11-11
Java 中DateUtils日期工具類的實(shí)例詳解
這篇文章主要介紹了Java 中DateUtils日期工具類的實(shí)例詳解的相關(guān)資料,有時(shí)候開發(fā)java項(xiàng)目使用日期類型,這里介紹下日期工具類,需要的朋友可以參考下2017-08-08

