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