使用Spring MVC后@PathVariable参数值包含'/'字符后出现问题

时间:2013-03-13 12:26:40

标签: spring-mvc

我有一个用例。 Spring MVC REST Url使用GET方法代码接收内容如下:

@RequestMapping("/q/{key}")
public String query(@PathVariable() String key, Model model){
    //todo`
}

但是这样一个请求的前端:/q/SiGeC%2FSi%E5%BC%82%E8%B4%A8%E7%BB%93%2F已解码的字符/。控制器无法匹配映射请求。

我该怎么办?

2 个答案:

答案 0 :(得分:3)

您可以在路径变量中包含正则表达式:

@RequestMapping("/q/{key:.*}")

这将在/ q /之后获取所有内容。或者你可以使它成为一个更具体的正则表达式,以匹配你实际期望的模式。

答案 1 :(得分:2)

@ PathVariable的注释可能无法解决此问题。最后使用解决方法已解决。代码如下:

@RequestMapping("/q/**")