转自:http://www.tuicool.com/articles/Zf2iyem
@RequestMapping(value = "/tags/**")
public String tags(HttpServletRequest request) {
// ISO-8859-1 ==> UTF-8 进行编码转换
String tagname = extractPathFromPattern(request);
tagname = ToolUtils.encodeStr(tagname);
// 其余处理略
}
// 把指定URL后的字符串全部截断当成参数
// 这么做是为了防止URL中包含中文或者特殊字符(/等)时,匹配不了的问题
private static String extractPathFromPattern(
final HttpServletRequest request)
{
String path = (String) request.getAttribute(HandlerMapping.PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTE);
String bestMatchPattern = (String) request.getAttribute(HandlerMapping.BEST_MATCHING_PATTERN_ATTRIBUTE);
return new AntPathMatcher().extractPathWithinPattern(bestMatchPattern, path);
}
搞完之后,不管你输入什么样的URL,都能进入到指定的方法!
<a href="/tags/标签充A">标签充A</a>
<a href="/tags/标签充A/asd/asd">标签充A</a>
<a href="/tags/标签充A/BB/cc.html">标签充A</a>
@RequestMapping("test/**")
public void test(HttpServletRequest request,HttpServletResponse response) {
String tagname = extractPathFromPattern(request);
System.out.println(tagname);
// this.outPrint(response, this.getOutputMsg());
}
// 把指定URL后的字符串全部截断当成参数
// 这么做是为了防止URL中包含中文或者特殊字符(/等)时,匹配不了的问题
private static String extractPathFromPattern(
final HttpServletRequest request)
{
String path = (String) request.getAttribute(HandlerMapping.PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTE);
String bestMatchPattern = (String) request.getAttribute(HandlerMapping.BEST_MATCHING_PATTERN_ATTRIBUTE);
return new AntPathMatcher().extractPathWithinPattern(bestMatchPattern, path);
}