Spring MVC获取包含点和斜杠的PathVariables

我想匹配以下形式的URL

http://host/10.39284/LKJF283/23332/dd(路径始终以10开头,其余部分由点,斜杠,字母和数字组成),并将10之后(包括10)以后的整个内容存储到PathVariable中。

我当时以为可以使用如下正则表达式来做到这一点:

@RequestMapping(value="/{key:10\.+}", method=RequestMethod.GET)

public String summary(@PathVariable String key, Model model) {

}

但这给我一个错误,提示“无效的转义序列”。知道我该如何做到吗?

回答:

这就是我的工作方式。据我所知,Spring无法处理不打算用作路径分隔符的URL中的斜杠。因此,我改为使用在这里找到的url重写过滤器:http

//www.tuckey.org/urlrewrite/。

我在web.xml中启用了它

<filter>

<filter-name>UrlRewriteFilter</filter-name>

<filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>

</filter>

<filter-mapping>

<filter-name>UrlRewriteFilter</filter-name>

<url-pattern>/*</url-pattern>

<dispatcher>REQUEST</dispatcher>

<dispatcher>FORWARD</dispatcher>

</filter-mapping>

然后将其添加到我的WEB-INF / urlrewrite.xml

<urlrewrite>

<rule>

<from>^/(10\..*)$</from>

<to>/keysummary?key=$1</to>

</rule>

</urlrewrite>

像这样写我的控制器

@RequestMapping(value="/keysummary", method=RequestMethod.GET)

public String DOISummary(@RequestParam("key") String key, Model model) {

}

以上是 Spring MVC获取包含点和斜杠的PathVariables 的全部内容, 来源链接: utcz.com/qa/422074.html

回到顶部