2013-05-08 106 views
0

由於Spring MVC 3通過註釋處理請求。 @RequestMapping(value = "/welcome")處理未知請求

我的應用程序URL是https://localhost:9452/clientapp/welcome.htm

這個網址打開了歡迎頁面。

我的web.xml文件是:

<servlet-mapping> 
    <servlet-name>spring</servlet-name> 
    <url-pattern>*.htm</url-pattern> 
    <url-pattern>*.do</url-pattern> 
</servlet-mapping> 

如何處理/趕上沒有welcome.htm這一請求。

https://localhost:9452/clientapp/ 

我試圖用這個,但徒勞

@RequestMapping(value = { "/*.htm", "/**/*.htm", "/*", "/**/*" }) 

回答

1

其中的一個原因是,你設置你的春天調度servlet來處理在你的servlet只有「熱媒」和「。做」映射。

Spring MVC在servlet API的基礎上工作,並使Spring控制器向某些url發送請求,這些請求首先應該由調度程序servlet提供。

嘗試使用:

<servlet-mapping> 
    <servlet-name>spring</servlet-name> 
    <url-pattern>/</url-pattern> 
</servlet-mapping> 

在web.xml

+0

這將停止加載我的資源,如圖像和CSS文件。 – 2013-05-08 07:09:25

+0

那麼,這可能是因爲你沒有完全配置你的調度程序servlet上下文。由於調度程序servlet將處理所有請求,因此您需要告訴它在哪裏查找資源。看到拉爾夫的答案在這裏:http://stackoverflow.com/questions/8195213/spring-3-mvc-resources-and-tag-mvcresources,例如如何做到這一點。 – 2013-05-08 08:47:33

+0

我不確定調度員servlet是否允許從WEB-INF加載資源,所以,爲了測試概念,我建議你做以下幾點:(1)驗證你的圖像是否在「{appname.war} /images/imagename.png「,(2)將」「添加到您的調度程序servlet上下文中,(3)運行您的戰爭並嘗試獲取它帶有像http:// {host}/{appname} /resources/imagename.png這樣的網址。如果這能解決問題 - 你應該有一個起點,以你想要的方式改進你的配置。 – 2013-05-08 10:25:43