【问题标题】:A question mark within a @PathVariable in Spring MVC?Spring MVC 中@PathVariable 中的问号?
【发布时间】:2012-06-08 10:17:33
【问题描述】:

在搜索引擎的@Controller 内:

@RequestMapping(value = "/search/{query}", method = RequestMethod.GET)
public String search(@PathVariable String query) {}

如果用户想要搜索 /search/w?rld(应该匹配 world、warld、whrld 等),则变量 query 等于 w,因为问号表示 GET 变量。

我试过"/search/{query:.+}",但还是不行。

知道如何解决这个问题吗?

【问题讨论】:

    标签: spring-mvc path-variables


    【解决方案1】:

    问题不在 Spring 配置中。它在网址中。问号是表示查询字符串开始的符号。如果它是 URL 的一部分,则必须对其进行编码:

    /search/w%3Frld
    

    【讨论】:

    • 谢谢,但我希望用户能够直接在浏览器的 URL 中编写查询,而不必自己手动转义问号。
    • 那就学他躲开问号,因为没办法绕过。
    【解决方案2】:

    如果只是一种方法:

    Spring MVC - How to get all request params in a map in Spring controller?

    将 WebRequest req 添加到您的签名方法 然后 映射参数 = req.getParameterMap();

    【讨论】:

      猜你喜欢
      • 2013-11-17
      • 2014-03-15
      • 2012-08-30
      • 2012-07-06
      • 1970-01-01
      • 1970-01-01
      • 2013-11-17
      • 1970-01-01
      相关资源
      最近更新 更多