2012-02-10 48 views
0

之外的任何URI在我當前的項目中,我們使用Spring 3 MVC並且需要實現乾淨的URL - 像/ category/subcategory/id。因此,我們已經制定了DispatchServlet任何URL是這樣的:如何設置Spring 3 MVC控制器以映射到除css /,js /或img/

<servlet-mapping> 
    <servlet-name>dispatcher</servlet-name> 
    <url-pattern>/*</url-pattern> 
</servlet-mapping> 

我們希望這個應用程序的所有請求都要經過一個控制器的一個方法吧。所以這方法的註釋,如:

@RequestMapping("/**") 

然而,這從字面上映射一切(當然),包括請求應該是什麼靜態資源,像IMG /,JS/CSS和/事情。有沒有一種方法可以排除這些包含靜態資源的目錄,同時通過一個@RequestMapping註解來捕獲其他任何內容?

回答

0

解決方案橫空出世要將@RequestMapping註釋移動到類級別,而不是該方法。然後控制器實現了Controller,控制器的邏輯轉移到了所需的handleRequest方法。

無論出於何種原因,這工作正常。我還不完全瞭解Spring MVC內部邏輯,以便準確理解它爲什麼有效,但它確實如此。我本來希望有一個更透明和「春天」的方式來做到這一點。

-1

我不知道這是否會工作,但你可以嘗試添加像這樣爲每種文件類型(* .js文件,*。的CSS等):

<servlet-mapping> 
    <servlet-name>default</servlet-name> 
    <url-pattern>*.js</url-pattern> 
</servlet-mapping> 
+0

感謝您的回答ddrmaxgt37,但這將意味着以.js(等)結尾的_only_文件由Spring和控制器處理。我們試圖找到一種避免這種URI被控制器處理的方法(儘管其他所有方法),或者避免它被Spring處理(更理想)。 – 2012-02-11 08:12:38

相關問題