我有控制器:
@RestController
public class MyController {
@GetMapping(value = "/products/{value}")
public String get(@PathVariable String value) {
System.out.println(value);
return "OK";
}
}
启动服务器后,我尝试发送如下消息:
http://localhost:8080/products/Mazda
,我在控制台 Mazda 中看到了。但是当我用反斜杠发送值时:
http://localhost:8080/products/Mazda\6
我得到一个错误:
此应用程序没有针对/ error的显式映射,因此您看到了 作为后备。
如何将带有'\'符号的值作为get参数传递给控制器?
我希望:马自达\ 6
答案 0 :(得分:0)
首先,您需要在客户端对路径变量进行编码。这是Java的示例:
URLEncoder.encode("Mazda\\6", "UTF-8");
结果将为Mazda%5C6
。
第二步是allow the processing of requests在其URL中包含特殊字符。
第三,在控制器中解码字符串:
String decodedValue = URLDecoder.decode(value, "UTF-8");