3

我想匹配表单的 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) {
}

但这给了我一个错误,说“无效的转义序列”。知道我怎么能做到这一点吗?

4

1 回答 1

6

这就是我让它工作的方式。据我所知,Spring 无法处理 URL 中不打算用作路径分隔符的斜杠。因此,我改为使用此处找到的 url 重写过滤器:http ://www.tukey.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) {
}
于 2012-09-21T14:40:59.800 回答