struts中的action有的时候不用try catch捕获异常,而将错误直接抛到jsp页面,
这样致使jsp直接把一大堆错误信息输出到页面或弹出异常信息,以下为解决方法:
?
测试的Actioin
?
public String execute() throws Exception { if(true) throw new Exception("出错咯......."); return super.execute(); }
?
struts.xml配置
<global-results> <result name="exception">/jsp/exception.jsp</result> </global-results> <global-exception-mappings> <exception-mapping result="exception" exception="java.lang.Exception"></exception-mapping> </global-exception-mappings>
?jsp页面
<%@ page language="java" contentType="text/html; charset=GBK"%> <%@ page import="org.apache.log4j.Logger" %> <%@page import="java.text.SimpleDateFormat"%> <%@taglib prefix="s" uri="/struts-tags"%> <html> <head> <title>异常处理页面</title> </head> <body> <!-- <s:property value="exceptionStack"/> <s:property value="exception.message"/> --> 系统异常,请稍候再试... <% final Logger logger = Logger.getLogger(getClass()); logger.error("系统异常>>>"+new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new java.util.Date())+">>>"+request.getAttribute("exception.message")); %> </body> </html>
?
这样页面看到的是:系统异常,请稍候再试
后台记录日志 ERROR exception_jsp : 系统异常>>>2010-04-22 18:58:20>>>出错咯......
1 楼
topbox163
2011-08-01
自动捕获所有异常信息,然后用EMAIL发出来,请问怎么实现?
2 楼
fireinjava
2011-08-01
topbox163 写道
自动捕获所有异常信息,然后用EMAIL发出来,请问怎么实现?
你在这个页面写个方法,把 <s:property value="exceptionStack"/> 发送出去就好了。