Spring @RequestParam與@PathVariable註釋的區別 | Baeldung
在本快速教程中,我們將探討Spring的@RequestParam和@PathVariable批註之間的區別。
@RequestParam和@PathVariable都可以用於從請求URI提取值,但是它們有些不同。
@RequestParam從查詢字串提取值:
@GetMapping("/foos") @ResponseBody public String getFooByIdUsingQueryParam(@RequestParam String id) { return "ID: " + id; } |
[b]http://localhost:8080/foos?id=abc[/b] ---- ID: abc |
@PathVariables從URI提取路徑值:
@GetMapping("/foos/{id}") @ResponseBody public String getFooById(@PathVariable String id) { return "ID: " + id; } <p class="indent">[b]http://localhost:8080/foos/abc[/b] ---- ID: abc |
兩者URL不同。因為@PathVariable從URI路徑中提取值,所以未對其進行編碼。另一方面,@ RequestParam則是對URI編碼。
@PathVariable未解碼URL引數:
http://localhost:8080/foos/ab+c ---- ID: ab+c |
@RequestParam 請求該引數是URL解碼的:
http://localhost:8080/foos?id=ab+c ---- ID: ab c |
完整原始碼可以在GitHub上找到
相關文章
- @ApiParam @PathVariable @RequestParam三者區別API
- @PathVariable @RequestParam @RequestBody @ModelAttribute的區別及RestTemplate呼叫方式REST
- @RequestParam,@RequestBody,@ResponseBody,@PathVariable註解的一點小總結
- Spring AOP @PathVariable和@RequestParam 引數進行校驗(valid)Spring
- 註解和註釋區別
- Spring 各版本釋出時間與區別Spring
- @Resource 與 @Service註解的區別
- Java執行緒池newCachedThreadPool()與newFixedThreadPool()區別 | BaeldungJava執行緒thread
- Docker, Dockerfile, 和Docker Compose區別 | BaeldungDocker
- Spring Boot的Clean架構教程與原始碼 - BaeldungSpring Boot架構原始碼
- spring中的FactoryBean與ObjectFactory的區別SpringBeanObject
- Java Spring各種依賴注入註解的區別JavaSpring依賴注入
- Solon2 與 Spring Boot 的區別Spring Boot
- spring boot與spring mvc的區別是什麼?Spring BootMVC
- OpenFeign @PathVariable需註明引數名稱
- 基於Spring Batch的Spring Boot的教程 - BaeldungBATSpring Boot
- SpringBoot的repackage和Maven打包命令之間的區別 - BaeldungSpring BootPackageMaven
- Java NIO和NIO.2有什麼區別? | baeldungJava
- Spring中ref local=""與ref bean=""的區別SpringBean
- spring beanFactory與ApplicationContext區別SpringBeanAPPContext
- Spring Boot面試問題| BaeldungSpring Boot面試
- @RequestParam
- 你知道「編譯」與「解釋」的區別嗎?編譯
- 編譯程式與解釋程式區別?編譯
- Spring之BeanFactory與ApplicationConText區別SpringBeanAPPContext
- Apache Spark:資料框,資料集和RDD之間的區別 - BaeldungApacheSpark
- 簡述Spring容器與SpringMVC的容器的聯絡與區別SpringMVC
- SpringMVC 基於註解的Controller @RequestMapping @RequestParamSpringMVCControllerAPP
- @Autowire和@Resource註解的區別
- Spring Cloud Gateway WebFilter工廠 | BaeldungSpringCloudGatewayWebFilter
- Spring Boot Reactor Netty配置 | BaeldungSpring BootReactNetty
- ??與?:的區別
- 【Java註解用法】@Autowired 與@Resource的區別以及@Qualifier的介紹Java
- Spring YAML與屬性檔案配置檔案對比 | BaeldungSpringYAML
- 閘道器 zuul 與 spring-cloud gateway的區別ZuulSpringCloudGateway
- ImportSelector與DeferredImportSelector的區別(spring4)ImportSpring
- spring不同配置方式的區別與優先順序Spring
- java命名與註釋Java