Struts 2.x权威指南
上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能输出异常对象完整的堆栈信息,因此更加有效。