天天看點

Spring MVC筆記 添加錯誤頁面

使用spring mvc的web項目,可以使用dispatcherservlet來指定異常頁面,下面是具體的配置:

在spring配置檔案中配置:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

<code>&lt;?</code><code>xml</code> <code>version="1.0" encoding="utf-8" ?&gt;</code>

<code>    </code><code>&lt;!-- 掃描web包,應用spring的注解 --&gt;</code>

<code>    </code><code>&lt;</code><code>context:component-scan</code> <code>base-package="com.xxx.training.spring.mvc"/&gt;</code>

<code>    </code><code>&lt;!-- 配置視圖解析器,将modelandview及字元串解析為具體的頁面 --&gt;</code>

<code>    </code><code>&lt;</code><code>bean</code>

<code>            </code><code>class="org.springframework.web.servlet.view.internalresourceviewresolver"</code>

<code>            </code><code>p:viewclass="org.springframework.web.servlet.view.jstlview"</code>

<code>            </code><code>p:prefix="/web-inf/views/"</code>

<code>            </code><code>p:suffix=".jsp"/&gt;</code>

<code>    </code><code>&lt;!--定義異常處理頁面--&gt;</code>

<code>    </code><code>&lt;</code><code>bean</code> <code>id="exceptionresolver" class="org.springframework.web.servlet.handler.simplemappingexceptionresolver"&gt;</code>

<code>        </code><code>&lt;</code><code>property</code> <code>name="exceptionmappings"&gt;</code>

<code>            </code><code>&lt;</code><code>props</code><code>&gt;</code>

<code>                </code><code>&lt;</code><code>prop</code> <code>key="java.sql.sqlexception"&gt;outexception&lt;/</code><code>prop</code><code>&gt;</code>

<code>                </code><code>&lt;</code><code>prop</code> <code>key="java.io.ioexception"&gt;outexception&lt;/</code><code>prop</code><code>&gt;</code>

<code>            </code><code>&lt;/</code><code>props</code><code>&gt;</code>

<code>        </code><code>&lt;/</code><code>property</code><code>&gt;</code>

<code>    </code><code>&lt;/</code><code>bean</code><code>&gt;</code>

<code>&lt;/</code><code>beans</code><code>&gt;</code>

  上面的定義異常處理部分的解釋為:隻要發生了sqlexception或者ioexception異常,就會自動跳轉到web-inf/views/outexception.jsp頁面。

一般情況下我們的outexception.jsp頁面的代碼為:

<code>&lt;%@ page contenttype=</code><code>"text/html;charset=utf-8"</code> <code>language=</code><code>"java"</code> <code>%&gt;</code>

<code>&lt;html&gt;</code>

<code>&lt;head&gt;</code>

<code>    </code><code>&lt;title&gt;異常處理頁面&lt;/title&gt;</code>

<code>&lt;/head&gt;</code>

<code>&lt;body&gt;</code>

<code>&lt;% exception ex = (exception) request.getattribute(</code><code>"exception"</code><code>);%&gt;</code>

<code>&lt;h2&gt;exception:&lt;%=ex.getmessage()%&gt;</code>

<code>&lt;/h2&gt;</code>

<code>&lt;/body&gt;</code>

<code>&lt;/html&gt;</code>

另外,在web.xml也可以使用類似下面的方式處理異常:

<code>&lt;</code><code>error-page</code><code>&gt;</code>

<code>     </code><code>&lt;</code><code>error-code</code><code>&gt;404&lt;/</code><code>error-code</code><code>&gt;</code>

<code>     </code><code>&lt;</code><code>location</code><code>&gt;/web-inf/pages/404.jsp&lt;/</code><code>location</code><code>&gt;</code>

<code> </code><code>&lt;/</code><code>error-page</code><code>&gt;</code>

<code> </code><code>&lt;</code><code>error-page</code><code>&gt;</code>

<code>     </code><code>&lt;</code><code>exception-type</code><code>&gt;java.lang.exception&lt;/</code><code>exception-type</code><code>&gt;</code>

<code>     </code><code>&lt;</code><code>location</code><code>&gt;/web-inf/pages/exception.jsp&lt;/</code><code>location</code><code>&gt;</code>

  因為這兩個異常處理的次元是不一樣的,spring的resolver是spring内部使用的,而web.xml裡的是整個webapp共同使用的。