關於[No mapping found for HTTP request with URI]的問題解決方法
阿新 • • 發佈:2018-12-15
在我們將Web專案部署到伺服器時,有時會出現靜態資源找不到的問題,如在我釋出一個Spring MVC的專案時會報出這樣的錯誤“No mapping found for HTTP request with URI [/HelloWorld/login] in DispatcherServlet with name 'springmvc'”,經過網上的查閱,檢視各種部落格最後通過實驗總結得出原因: <servlet-mapping>的<url-pattern>/</url-pattern>把所有的請求都交給spring去處理了,而所有available的請求url都是在Constroller裡使用類似@RequestMapping(value = "/login/{user}", method = RequestMethod.GET)這樣的註解配置的,這樣的話對js/css/jpg/gif等靜態資源的訪問就會得不到。 有以下一些解決方法:
一、在web.xml裡新增如下的配置
<servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>*.css</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>*.gif</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>*.jpg</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>*.js</url-pattern> </servlet-mapping>
二、在spring的配置檔案中新增如下一行(注意,需要是spring3.0.5以上版本):
<mvc:default-servlet-handler/>
以上是實驗過的方法