2013-08-20 44 views
1

我有一個問題,而使用Spring MVC的:通過用SpringMVC衝突@PathVariable和資源

我寫了一個控制器,一個名爲

@RequestMapping(法 「/ {模塊名}/{} subModuleName」 )
公衆的ModelAndView getModuleContent(@PathVariable字符串MODULENAME,@PathVariable字符串subModuleName){
          ...
}

現在的問題是,當我訪問靜態資源,例如:

http://www.mytomcat:8080/images/testpng 


會作圖,控制器,但我不想這樣,怎麼能我解決衝突?

回答

0

相應地配置以下內容。

<mvc:resources mapping="/resources/**" location="/public-resources/"/> 
0

對於資源文件夾,例如/images,您可能需要configure resource handlers

它應該有幫助,因爲這些處理程序的映射將比/{moduleName}/{subModuleName}更具體,因此資源處理程序應該優先。

0

嘗試指定路徑正則表達式瓦爾:

@RequestMapping(value = "/{year:\\d+}/{month:\\d+}/**", method = RequestMethod.GET)

這有助於春季避免與<mvc:resources/>映射到路徑像/images/**衝突。如果你的路徑變量可以包含除'圖像'之外的所有東西,你可以嘗試像這樣的正則表達式:(?!images)