1. 程式人生 > >springMVC的顯示登陸首頁和錯誤時跳轉錯誤介面

springMVC的顯示登陸首頁和錯誤時跳轉錯誤介面

在專案的WebContent下放了一個index.html檔案和404.html檔案,我希望訪問springMvc訪問專案根路徑的檔案時,能夠開啟這個index.html檔案,同樣,當網頁無法找到報404錯誤時,返回404.html這個網頁。

很鬱悶的是,專案啟動以後,控制檯會列印

1 2014-08-31 13:38:20 [ WARN] - org.springframework.web.servlet.PageNotFound -DispatcherServlet.java(1108) -No mapping found for HTTP request with URI [/page404.html] in DispatcherServlet with name
'springMvc3'

並且訪問localhost時,總是不能找到index.html,也無法返回404.html,網上找了很久也沒找到原因,後來自己研究了將近一箇中午,總算解決問題了。

解決方案就是:

在spring的配置檔案中,一定要加上這句

1 <mvc:default-servlet-handler />

這句的意思是:訪問專案時,首先走預設的 web.xml 配置的servlet,沒有的話才找對應controller

我的web.xml中配置了以下內容

1 2 3 4 5 6 7 8 9 <welcome-file-list>
<welcome-file>index.html</welcome-file> </welcome-file-list> <!-- 通過錯誤碼來配置error-page ,配置了當系統發生404錯誤時,跳轉到錯誤處理頁面NotFound.jsp。 --> <error-page> <error-code>404</error-code> <location>/page404.html</location> </error-page>

在spring的配置檔案中,如果有這句配置

1 <mvc:default-servlet-handler />

則代表著訪問專案根路徑localhost的話,spring會直接返回index.html,如果index.html不存在的話,則會返回相應的controller所返回的頁面。

相反,如果沒有這句配置

1 <mvc:default-servlet-handler />
則代表著訪問專案根路徑localhost的話,會返回相應的controller所返回的頁面,就與web.xml配置的weilcome-file-list無關了。