2012-04-25 43 views
1

在彈簧3.0.x的我有一個處理程序方法,它完美地工作,如:更新從彈簧MVC 3.0螞蟻樣式路徑捕獲到3.1

@RequestMapping("/foo/{version:\\d+}/**") 
public void handleVersionedResource(@PathVariable("version") Long version, HttpServletRequest request, HttpServletResponse response) { 
    String path = (String) request.getAttribute(HandlerMapping.PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTE); 

    // rest of the code maps path and version to a real resource and serves 
    // content with extra long cache control/expires headers 
} 

在3.0.x的,FF請求URL是/ foo/12345/some/resource,然後path =「some/resource」(請求匹配的**部分)。

但是,在3.1.x中(同時使用3.1.0.RELEASE和3.1.1.RELEASE)路徑=到完整的請求路徑匹配,所以在我之前的例子中「/ foo/12345/some/resource」 。

所以問題是,有沒有人有最簡單的方法來複制我在3.0.x中獲得的行爲?還有,爲什麼這種行爲發生了變化?我首先做錯了嗎?

更新: 重複Spring 3.1.RC1 and PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTE - 沒有好的答案在那裏。

回答