日期:2014-05-16  浏览次数:20433 次

Struts2 异常处理 ( jsp记录异常信息到日志 )

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"/> 发送出去就好了。