为了账号安全,请及时绑定邮箱和手机立即绑定

Springboot:控制器中的@RequestParam 读取带有“&”和“#”的请求为空

Springboot:控制器中的@RequestParam 读取带有“&”和“#”的请求为空

收到一只叮咚 2022-10-07 16:39:00
我有一个在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'
查看完整描述

2 回答

?
FFIVE

TA贡献1797条经验 获得超6个赞

您需要在前端对特殊字符进行编码。

IE'$' is '%26'

只是另一方面,将名称显式添加到您的@RequestParam("cityName")


查看完整回答
反对 回复 2022-10-07
?
守着一只汪

TA贡献1872条经验 获得超3个赞

与号 (&) 用于分隔多个请求参数,而井号 (#) 用于 HTML 中的书签/锚点。

它们都是具有用途的特殊字符,如果它们不用于这些目的,则需要对其进行编码。

您可以在此处找到有关该主题的更多信息。


查看完整回答
反对 回复 2022-10-07
  • 2 回答
  • 0 关注
  • 128 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信