Spring學(xué)習(xí)筆記系列(三) 異常處理

          配置Spring異常處理之需要增加一個(gè)bean的配置:

          增加了一個(gè)異常處理的bean
           <!-- Exception Resolver-->
           <bean id="exceptionResolver" class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
            <property name="defaultErrorView">
             <value>/exception/failure</value>
            </property>

            <property name="exceptionMappings">
             <props>
              <prop key="java.sql.SQLException">/exception/showDBError</prop>
              <prop key="java.lang.RuntimeException">/exception/showError</prop>    
             </props> 
            </property>
           </bean>

          這樣就可以統(tǒng)一分別處理不同Exception了。注意jsp頁面在request中attribute等于“exception”,

          而不是“Exception”注意大小寫。頁面如下:

          錯(cuò)誤顯示頁面

           <c:set value="${exception}" var="ee"/>
            <jsp:useBean id="ee" type="java.lang.Exception" />
            <%=ee.getMessage()%><br>
          <%ee.printStackTrace( new java.io.PrintWriter(out));%>


          當(dāng)然也可以做得更友好些,例如可以顯示隱藏詳細(xì)信息。

          <%@ taglib prefix="c" uri=">
          <%@ taglib prefix="spring"  uri="
          >
          <%@ page contentType="text/html;charset=GBK" language="java" pageEncoding="GBK"%>
          <%@ page import="java.util.Enumeration,java.util.Iterator"%>
          <script>
           function showErr(){
            var isHidde = document.all.isHidde.value;
            //alert(isHidde);
            if( isHidde == "true" ){
             document.all.errdiv.style.display='block';
             document.all.isHidde.value= 'false';
             document.all.showbtn.value="隱藏錯(cuò)誤信息";
            }else{
             document.all.errdiv.style.display='none';
             document.all.isHidde.value= 'true';
             document.all.showbtn.value="顯示錯(cuò)誤信息";
            }
           }
          </script>
          <html>
           <head>
            <title>this is failure</title>
           </head>
           <body onload="showErr()"> 

          <c:set value="${exception}" var="ee"/>
            <jsp:useBean id="ee" type="java.lang.Exception" />
            <%=ee.getMessage()%>ok,<br>
            
            
            <table id="errdiv" align="center" bgcolor="darkseagreen">
            <tr><td>
            <font color=red>
            <%ee.printStackTrace( new java.io.PrintWriter(out));%>
            </font>
            </td></tr></table>
            <input type="hidden" id="isHidde" value="true"/>
            <input type="button" id="showbtn" onclick="showErr();"/>

           </body>
          </html>

          增加了一個(gè)異常處理的bean
           <!-- Exception Resolver-->
           <bean id="exceptionResolver" class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
            <property name="defaultErrorView">
             <value>/exception/failure</value>
            </property>

            <property name="exceptionMappings">
             <props>
              <prop key="java.sql.SQLException">/exception/showDBError</prop>
              <prop key="java.lang.RuntimeException">/exception/showError</prop>    
             </props> 
            </property>
           </bean>

          這樣就可以統(tǒng)一分別處理不同Exception了。注意jsp頁面在request中attribute等于“exception”,

          而不是“Exception”注意大小寫。頁面如下:

          錯(cuò)誤顯示頁面

           <c:set value="${exception}" var="ee"/>
            <jsp:useBean id="ee" type="java.lang.Exception" />
            <%=ee.getMessage()%><br>
          <%ee.printStackTrace( new java.io.PrintWriter(out));%>


          當(dāng)然也可以做得更友好些,例如可以顯示隱藏詳細(xì)信息。

          <%@ taglib prefix="c" uri=">
          <%@ taglib prefix="spring"  uri="
          >
          <%@ page contentType="text/html;charset=GBK" language="java" pageEncoding="GBK"%>
          <%@ page import="java.util.Enumeration,java.util.Iterator"%>
          <script>
           function showErr(){
            var isHidde = document.all.isHidde.value;
            //alert(isHidde);
            if( isHidde == "true" ){
             document.all.errdiv.style.display='block';
             document.all.isHidde.value= 'false';
             document.all.showbtn.value="隱藏錯(cuò)誤信息";
            }else{
             document.all.errdiv.style.display='none';
             document.all.isHidde.value= 'true';
             document.all.showbtn.value="顯示錯(cuò)誤信息";
            }
           }
          </script>
          <html>
           <head>
            <title>this is failure</title>
           </head>
           <body onload="showErr()"> 

          <c:set value="${exception}" var="ee"/>
            <jsp:useBean id="ee" type="java.lang.Exception" />
            <%=ee.getMessage()%>ok,<br>
            
            
            <table id="errdiv" align="center" bgcolor="darkseagreen">
            <tr><td>
            <font color=red>
            <%ee.printStackTrace( new java.io.PrintWriter(out));%>
            </font>
            </td></tr></table>
            <input type="hidden" id="isHidde" value="true"/>
            <input type="button" id="showbtn" onclick="showErr();"/>

           </body>
          </html>


          posted on 2007-06-18 18:00 chenguo 閱讀(278) 評論(0)  編輯  收藏 所屬分類: Spring Dev

          <2025年7月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          導(dǎo)航

          統(tǒng)計(jì)

          留言簿

          隨筆分類(1)

          文章分類(52)

          好友 小山的博客

          最新隨筆

          最新評論

          主站蜘蛛池模板: 岳普湖县| 连南| 衡阳市| 搜索| 阜城县| 乐山市| 洛阳市| 迁安市| 同仁县| 大足县| 错那县| 莆田市| 洛扎县| 浮山县| 高淳县| 桑植县| 荔波县| 高尔夫| 三江| 隆德县| 绥江县| 新丰县| 于田县| 罗平县| 濮阳县| 湖北省| 沅陵县| 霍山县| 武威市| 乐山市| 乌拉特后旗| 香港 | 两当县| 金乡县| 木兰县| 阿图什市| 临泉县| 柳江县| 黑山县| 江津市| 留坝县|