Spring Boot中带有url编码字符的请求映射

时间:2019-05-08 06:46:37

标签: spring-boot tomcat8

在我的Spring Boot应用程序中,我有一个URL,该URL由来自客户端的值连接而成,例如:

  

/ api / foo / {client-defined-value} / bar /

真实的URL可以是这样的:

  

/api/foo/OBCH.%20Z%C3%81STUPCI/bar /

(非url编码值为“ OBCH。ZÁSTUPCI”)

在控制器中,我定义了GET请求映射:

@GetMapping(value = "/foo/{value:[^\\/]+}/bar/")

但未找到映射:

  

未找到具有URI的HTTP请求的映射...

我在做什么错?

1 个答案:

答案 0 :(得分:-1)

您可以通过使用注释@Pathvariable("client-defined-value")作为方法参数来访问URL变量。

像这样:

@RequestMapping(value = "/api/foo/{client-defined-value}/bar/")
public void foo(@PathVariable("client-defined-value") String value) {
    doSomething…
}