首頁  >  文章  >  Java  >  如何使用Spring MVC顯示自訂的404 Not Found頁面

如何使用Spring MVC顯示自訂的404 Not Found頁面

不言
不言轉載
2018-10-22 15:52:592555瀏覽

這篇文章帶給大家的內容是關於如何使用Spring MVC顯示自訂的404 Not Found頁面,有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。

不知道大家對千篇一律的404 Not Found的錯誤頁面是否感到膩歪了?其實透過很簡單的設定就能夠讓Spring MVC顯示您自訂的404 Not Found錯誤頁面。

在WEB-INF的web.xml裡新增一個新的區域:

如何使用Spring MVC顯示自訂的404 Not Found頁面

#意思是一旦有404錯誤發生時,顯示resouces資料夾下的404.jsp頁面。

<error-page>
<error-code>404</error-code>
<location>/resources/404.jsp</location>
</error-page>

現在可以隨意開發您喜歡的個人化404錯誤頁面了。

如何使用Spring MVC顯示自訂的404 Not Found頁面

如何使用Spring MVC顯示自訂的404 Not Found頁面

#完畢後,隨便存取一個不存在的url,故意造成404錯誤,就能看到我們剛剛配置的自訂404 Not Found頁面了。

如何使用Spring MVC顯示自訂的404 Not Found頁面

如果想在Spring MVC裡實作一個通用的異常處理邏輯(Exception handler), 能夠捕捉所有類型的異常,例如透過下面這種方式拋出的異常,可以依照下面介紹的步驟來做。

如何使用Spring MVC顯示自訂的404 Not Found頁面

1. 新建一個類,繼承自SimpleMappingExceptionResolver:

public class GlobalDefaultExceptionHandler extends
SimpleMappingExceptionResolver {
public GlobalDefaultExceptionHandler(){
System.out.println("GlobalDefaultExceptionHandler constructor called!");
}
@Override
public String buildLogMessage(Exception ex, HttpServletRequest request) {
System.out.println("Exception caught by Jerry");
ex.printStackTrace();
return "Spring MVC exception: " + ex.getLocalizedMessage();
}

2. 在Spring MVC的Servlet設定檔裡,將剛剛建立的類別作為一個Bean配置進去:

如何使用Spring MVC顯示自訂的404 Not Found頁面

Bean的ID設定為simpleMappingExceptionResolver,class設定為步驟一建立的類別的包含namespace的全名。建立一個名為defaultErrorView的property,其value為generic_error, 指向一個JSP view:generic_error.jsp。

<bean>
<property>
<map>
<entry></entry>
</map>
</property>
<property></property>
</bean>

generic_error.jsp的原始碼:

nbsp;html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">


<meta>
<title>Generic Error Page of Jerry</title>


<h2>Unknown Error Occured, please contact Wang, Jerry.</h2>

現在可以做測試了。我之前透過下列語句拋了一個例外:

throw new Exception("Generic Exception raised by Jerry");

這個異常成功地被我自己實現的異常處理類別捕捉到,並顯示出我自訂的異常顯示頁面:

如何使用Spring MVC顯示自訂的404 Not Found頁面

#

以上是如何使用Spring MVC顯示自訂的404 Not Found頁面的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:segmentfault.com。如有侵權,請聯絡admin@php.cn刪除