我有一个在Tomcat上运行的Spring-Boot应用程序。在其中,我有一个带请求参数的RestController。 @RequestParam
不读取'&'
或'#'
作为查询参数传递。
例如,如果我给http://localhost:8080/v1/test?query=&
,那么控制器方法不会将&
作为值
@RequestMapping(value = "/v1/test", method = RequestMethod.GET,produces = MediaType.APPLICATION_JSON_VALUE)
public String getV2LocationByName(
@RequestParam
String cityName cityName,
@RequestParam(value = LANGUAGE, defaultValue = US_ENGLISH_LOCALE) String language,
HttpServletRequest request) throws InterruptedException, ExecutionException {
--------------
---------------
System.out.println(cityName);
}
上面的程序返回&和#的空输出
为什么spring会限制这些特殊字符,但它不限制任何其他特殊字符?如果将查询参数用作'Andaman&Nicobar',查询参数将被读作'Andaman'
您需要在前端对特殊字符进行编码。
这是一个耶稣
只是侧面是一个很好的做法,明确添加你的'$' is '%26'
名称