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"%>
2.<%@ page import="org.apache.log4j.Logger" %>
3.<%@page import="java.text.SimpleDateFormat"%>
4.<%@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>>>出错咯......