使用Tuckey UrlRewriteFilter重写SpringMVC url
问题内容:
我如何使用Tuckey的UrlRewriteFilter重写SpringMVC中的url,如下所示:
从
http://localhost:8080/demo/api.do?method=getUser&uid=1001
至
http://localhost:8080/demo/api/user/1001
控制器片段:
@Controller
@RequestMapping("/api.do")
public class APIController {
@RequestMapping(params = "method=getUser")
public String methodName(HttpServletRequest request) {
//CODE BLOCK
}
}
问题答案:
如果您正在使用Maven,请添加依赖项
<dependency>
<groupId>org.tuckey</groupId>
<artifactId>urlrewritefilter</artifactId>
<version>4.0.3</version>
</dependency>
在 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>^/demo/api.do?method=getUser&uid=(.*)$</from>
<to>/demo/api/user/$1</to>
</rule>
</urlrewrite>