Spring 3.1.RC1和PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTE


问题内容

张贴在spring论坛,没有回应。

我有以下代码片段(从此处开始),这是我的pet项目的一部分。

@Controller
@RequestMapping("/browse")
public class MediaBrowser {
   ...

    @RequestMapping("/**")
    public final ModelAndView listContents(final HttpServletRequest request) {

        String folder = (String) request.getAttribute(
                HandlerMapping.PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTE);
                ...
    }

我访问以下网址:

http:// localhost:8080 / myapp /浏览

  • 在spring3.0.6.RELEASE,我得到了folder变量as null,这是期望值。
  • 在spring3.1.RC1folder变量为/browse

这是Bug还是在3.1spring发生了变化?


问题答案:

正如skaffman所说,您可能不应该使用PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTE。看看如何匹配具有@pathVariable且包含“/”的Spring @RequestMapping?举一个AntPathMatcher用来完成您正在尝试的事情的例子