Spring MVC 异常,怎样显示比较友好?

        本文基于Spring MVC 注解,让Spring跑起来

        实施过程中完全没有任何异常,测试过程中也没出错,偏偏在客户试用过程中报错了。报错了,怎样给客户友好界面?两个方法:一,别出错;二,一旦错了,尽量给一个友好界面。

        友好界面是设计师的事,程序员的事就是让错误显示在设计师设计好的界面上。

        在src/applicationContext.xml中添加如下代码:

        <!-- 异常控制 -->
	<bean id="exceptionResolver"
		class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
		<property name="defaultErrorView" value="/exception" />
		<property name="exceptionMappings">
			<props>
				<prop key="java.lang.Exception">/exception</prop>
			</props>
		</property>
	</bean>

        这一段代码可使程序运行过程中出现Exception时,自动跳转到/WEB-INF/pages/exception.jsp页面,而在exception.jsp页面以如下方式获取异常:

<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<script type="text/javascript">
	function showErrors() {
		var err_el = document.getElementById('errors');
		if (err_el.style.display == 'none') {
			err_el.style.display = '';
		} else {
			err_el.style.display = 'none';
		}
	}
</script>
</head>
<body>
	${exception.message },您可以
	<a href="javascript:showErrors();">查看详情</a>或直接
	<a href="javascript:reback();">返回</a>。
	<div style="display: none; color: red;" id="errors">
		<c:forEach items="${exception.stackTrace }" var="e">
	${e }<br />
		</c:forEach>
	</div>

</body>
</html>
        当然,这远没有达到“友好界面”,请对exception.jsp页面重新改造,让它看起来顺眼一点。


版权声明:本文为geloin原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。