上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
3.8.3 输出异常信息
当Struts 2框架控制系统进入异常处理页面后,我们必须在对应页面中输出指定的异常信息。
为了在异常处理页面中显示异常信息,我们可以使用Struts 2的如下标签来输出异常信息。
<s:property value="exception"/>:输出异常对象本身。
<s:property value="exceptionStack"/>:输出异常堆栈信息。
对于第一种直接输出异常对象本身的方式,完全可以使用表达式。
本应用的exception.jsp页面代码如下。
程序清单:codes\04\4.5\ExceptionHandler\exception.jsp
<%@ page contentType="text/html; charset=GBK" language="java" errorPage="" %>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GBK" />
<title>异常处理页面</title>
</head>
<body>
异常信息:<s:property value="exception.message"/>
</body>
</html>
如果在登录页面的用户名输入框中输入user,然后提交请求,系统将抛出org.crazyit.struts2. exception.MyException异常,系统将转到如图3.30所示的页面。
图3.30 输出自定义异常的message属性
我们将输出异常信息的代码改为:
<!-- 使用Struts 2标签输出异常堆栈信息 --> <s:property value="exceptionStack"/>
如果在登录页面的用户名输入框中输入sql,然后提交请求,系统将抛出java.sql.SQLException异常,系统将转到如图3.31所示的页面。
图3.31 显示异常堆栈信息
相对于Struts 1只能输出异常对象的message属性值,而无法输出异常堆栈信息,Struts 2能输出异常对象完整的堆栈信息,因此更加有效。