這篇文章主要介紹了Spring MVC的常用注解有哪些及怎么用的相關(guān)知識,內(nèi)容詳細(xì)易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇Spring MVC的常用注解有哪些及怎么用文章都會有所收獲,下面我們一起來看看吧。
成都創(chuàng)新互聯(lián)公司是專業(yè)的城子河網(wǎng)站建設(shè)公司,城子河接單;提供網(wǎng)站制作、網(wǎng)站設(shè)計,網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行城子河網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊,希望更多企業(yè)前來合作!
Spring Boot 默認(rèn)集成了Spring MVC,下面為Spring MVC一些常用注解。
開發(fā)環(huán)境:IntelliJ IDEA 2019.2.2
Spring Boot版本:2.1.8
新建一個名稱為demo的Spring Boot項目。
一、Controller注解
Controller注解用于修飾Java類,被修飾的類充當(dāng)MVC中的控制器角色。
Controller注解使用了@Component修飾,使用Controller注解修飾的類,會被@ComponentScan檢測,并且會作為Spring的bean被放到容器
中。
package com.example.demo; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; @Controller public class DemoController { @RequestMapping("/index") @ResponseBody public String index(){ return "index"; } }
運行項目后,瀏覽器訪問:http://localhost:8080/index,頁面顯示:
index
二、RestController注解
RestController注解是為了更方便使用@Controller和@ResponseBody。
@ResponseBody修飾控制器方法,方法的返回值將會被寫到HTTP的響應(yīng)體中,所返回的內(nèi)容不放到模型中,也不會被解釋為視圖的名稱。
下面例子等同于上面例子。
package com.example.demo; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class DemoController { @RequestMapping("/index") public String index(){ return "index"; } }
三、RequestMapping注解
RequestMapping注解可修飾類或方法,主要用于映射請求與處理方法。
當(dāng)用于修飾類并設(shè)置了URL時,表示為各個請求設(shè)置了URL前綴。
RequestMapping注解主要有以下屬性:
(1)path與value:用于配置映射的url;
(2)method:映射的HTTP方法,如GET、POST、PUT、DELETE;
也可以使用默認(rèn)配置了@RequestMapping的method屬性的幾個注解:
@GetMapping等同于RequestMapping(method="RequestMethod.GET")
@PostMapping、@PutMapping、@DeleteMapping類似。
(3)params:為映射的請求配置參數(shù)標(biāo)識;
(4)consumes:配置請求的數(shù)據(jù)類型,如XML或JSON等;
(5)produces:配置響應(yīng)的數(shù)據(jù)類型,如“application/json”返回json數(shù)據(jù);
package com.example.demo; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; @RestController @RequestMapping("/oa") public class DemoController { @RequestMapping(value = "/index1") public String index1(){ return "index1"; } @RequestMapping(value = "/index2", method = RequestMethod.GET) public String index2(){ return "index2"; } @GetMapping(value = "/index3") public String index3(){ return "index3"; } }
瀏覽器分別訪問:
http://localhost:8080/oa/index1
http://localhost:8080/oa/index2
http://localhost:8080/oa/index3
頁面分別顯示:
index1
index2
index3
四、PathVariable注解
PathVariable注解主要用于修飾方法參數(shù),表示該方法參數(shù)是請求URL的變量。
package com.example.demo; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RestController; @RestController public class DemoController { @GetMapping("/index1/{name}") public String index1(@PathVariable String name){ return "index1: " + name; } //可以為@PathVariable配置屬性值,顯式綁定方法參數(shù)與URL變量的值 @GetMapping("/index2/{name}") public String index2(@PathVariable("name") String lc){ return "index2: " + lc; } }
瀏覽器訪問http://localhost:8080/index1/a
頁面顯示:
a
訪問http://localhost:8080/index1/b
頁面顯示:
b
五、RequestParam注解
RequestParam注解用于獲取請求體中的請求參數(shù),如表單提交后獲取頁面控件name值。
package com.example.demo; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import java.util.Map; @RestController public class DemoController { @PostMapping("/index1") public String index1(@RequestParam String userName){ return userName; } //map存放所有請求參數(shù) @PostMapping("/index2") public String index2(@RequestParam Mapmap){ String age = map.get("age"); String sex = map.get("sex"); return age + "," + sex; } }
隨便在電腦中如桌面新建一個html文件:
瀏覽器打開后,如果點擊“提交1”按鈕后,頁面跳到http://localhost:8080/index1,顯示abc。
如果點擊“提交2”按鈕后,頁面跳到http://localhost:8080/index2,顯示22,male。
六、文件上傳
使用RequestParam注解可以實現(xiàn)文件上傳。
package com.example.demo; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; import java.io.File; import java.io.IOException; @RestController public class DemoController { @PostMapping("/upload") public String upload(@RequestParam("file") MultipartFile file) throws IOException { String fileName = file.getOriginalFilename(); String filePath = "D:/"; File dest = new File(filePath + fileName); file.transferTo(dest); return "上傳成功"; } }
隨便新建一個html文件
瀏覽器打開后,選擇一個文件,點擊提交后,文件保存到了D盤。
關(guān)于“Spring MVC的常用注解有哪些及怎么用”這篇文章的內(nèi)容就介紹到這里,感謝各位的閱讀!相信大家對“Spring MVC的常用注解有哪些及怎么用”知識都有一定的了解,大家如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。