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="http://java.sun.com/jstl/core_rt"%>
<%@ taglib prefix="spring"  uri="http://www.springframework.org/tags"%>
<%@ 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="http://java.sun.com/jstl/core_rt"%>
<%@ taglib prefix="spring"  uri="http://www.springframework.org/tags"%>
<%@ 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 阅读(267) 评论(0)  编辑  收藏 所属分类: Spring Dev


只有注册用户登录后才能发表评论。


网站导航:
 
<2024年6月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456

导航

统计

留言簿

随笔分类(1)

文章分类(52)

好友 小山的博客

最新随笔

最新评论