Spring学习笔记三 Spring异常处理 060109

配置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 οnlοad="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" οnclick="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 οnlοad="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" οnclick="showErr();"/>

 </body>
</html>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值