Spring學習筆記系列(三) 異常處理

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

          增加了一個異常處理的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>

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

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

          錯誤顯示頁面

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


          當然也可以做得更友好些,例如可以顯示隱藏詳細信息。

          <%@ 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="隱藏錯誤信息";
            }else{
             document.all.errdiv.style.display='none';
             document.all.isHidde.value= 'true';
             document.all.showbtn.value="顯示錯誤信息";
            }
           }
          </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>

          增加了一個異常處理的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>

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

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

          錯誤顯示頁面

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


          當然也可以做得更友好些,例如可以顯示隱藏詳細信息。

          <%@ 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="隱藏錯誤信息";
            }else{
             document.all.errdiv.style.display='none';
             document.all.isHidde.value= 'true';
             document.all.showbtn.value="顯示錯誤信息";
            }
           }
          </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 閱讀(280) 評論(0)  編輯  收藏 所屬分類: Spring Dev

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

          導航

          統計

          留言簿

          隨筆分類(1)

          文章分類(52)

          好友 小山的博客

          最新隨筆

          最新評論

          主站蜘蛛池模板: 洛川县| 临夏县| 温州市| 鲁山县| 贡觉县| 屏东县| 太仆寺旗| 昌图县| 昂仁县| 西乌珠穆沁旗| 那坡县| 同仁县| 都安| 常山县| 崇左市| 灵武市| 宜兴市| 遂川县| 逊克县| 如皋市| 黑山县| 沁源县| 昌江| 沙洋县| 惠安县| 昌图县| 剑河县| 南漳县| 广水市| 客服| 射洪县| 芦山县| 乐亭县| 和平县| 徐州市| 庆云县| 独山县| 宜黄县| 高唐县| 林州市| 保定市|