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
- 註解和註釋區別
- Solon 的 PathVariable 不需註解
- Spring 各版本釋出時間與區別Spring
- Java執行緒池newCachedThreadPool()與newFixedThreadPool()區別 | BaeldungJava執行緒thread
- @Resource 與 @Service註解的區別
- Docker, Dockerfile, 和Docker Compose區別 | BaeldungDocker
- spring beanFactory與ApplicationContext區別SpringBeanAPPContext
- spring中的FactoryBean與ObjectFactory的區別SpringBeanObject
- spring boot與spring mvc的區別是什麼?Spring BootMVC
- Spring Boot的Clean架構教程與原始碼 - BaeldungSpring Boot架構原始碼
- Solon2 與 Spring Boot 的區別Spring Boot
- ImportSelector與DeferredImportSelector的區別(spring4)ImportSpring
- SpringBoot的repackage和Maven打包命令之間的區別 - BaeldungSpring BootPackageMaven
- 基於Spring Batch的Spring Boot的教程 - BaeldungBATSpring Boot
- Spring中ref local=""與ref bean=""的區別SpringBean
- OpenFeign @PathVariable需註明引數名稱
- 簡述Spring容器與SpringMVC的容器的聯絡與區別SpringMVC
- Java NIO和NIO.2有什麼區別? | baeldungJava
- Spring Boot Reactor Netty配置 | BaeldungSpring BootReactNetty
- spring和springmvc的區別SpringMVC
- spring不同配置方式的區別與優先順序Spring
- 閘道器 zuul 與 spring-cloud gateway的區別ZuulSpringCloudGateway
- Spring MVC和Spring Boot的區別 - hackernoonMVCSpring Boot
- @RequestParam
- Spring YAML與屬性檔案配置檔案對比 | BaeldungSpringYAML
- Spring Cloud Gateway WebFilter工廠 | BaeldungSpringCloudGatewayWebFilter
- Spring Boot面試問題| BaeldungSpring Boot面試
- 【Java註解用法】@Autowired 與@Resource的區別以及@Qualifier的介紹Java
- @Autowire和@Resource註解的區別
- ??與?:的區別
- Apache Spark:資料框,資料集和RDD之間的區別 - BaeldungApacheSpark
- 用Spring組合自定義的註釋 - mscharhagSpring
- 使用 Spring Transactional 註釋的最佳方式 - Vlad MihalceaSpring
- Eclipse中各種檔案的註釋與取消註釋的快捷鍵Eclipse