struts2中的异常处理

Struts2 中的异常处理?
异常有几种类型:
1.意外的错误
2.改变工作流
3.通过与用户交互来恢复
4.显示错误

下面分别对这几种异常的解析

1.意外的错误
<package name="itcast" namespace="/test" extends="struts-default">
<global-results>
<result name="unknown">/WEB-INF/jsp/error.jsp</result>
<result name="dberror">/WEB-INF/jsp/dberror.jsp</result>
</global-results>
<global-exception-mappings>
<exception-mapping result="unknown" exception="java.lang.Exception"></exception-mapping>
<exception-mapping result="dberror" exception="java.sql.SELException"></exception-mapping>
</global-exception-mappings>
</package>

这种方式用来捕获一些为知的错误,java.lang.Exception是所有异常的基类,不管是什么错误,最终都能给用户友好的界面交互,
也可以按异常的种类进行分类(如:数据库错误,操作错误,服务器连接错误等),定义多个视图


2.改变工作流

  <global-results>
<result name="login">/WEB-INF/jsp/login.jsp</result>
<result name="noaccess">/WEB-INF/jsp/noaccess.jsp</result>
</global-results>
<global-exception-mappings>
<exception-mapping result="login" exception="UserNotAuthentivatedException"></exception-mapping>
<exception-mapping result="noaccess" exception="ActionNotAllowedException"></exception-mapping>
</global-exception-mappings>
遇到错误时改变工作的走向

3.通过与用户交互恢复

<action name="helloworld" class="cn.itcast.action.HelloWorldAction" method="execute" >
<result name="success">/WEB-INF/page/hello.jsp</result>
<result name="dupPk">/WEB-INF/jsp/user/findUser-success.jsp</result>
<exception-mapping result="dupPk" exception="org.hibernate.exception.ConstraintViolationException"></exception-mapping>
</action>

在action中定义<exception-mapping>捕捉异常

4.错误显示

当exception拦截器拦截了异常之后,将在值栈中添加两个新的属性:
1.exception:异常的描述信息,通过getMessage()方法得到。
2.exceptionStack:异常栈的跟踪信息。

在jsp页面上显示错误信息:
<s:if test="exception!=null">
<s:text name="errorMessage"/>
</s: if>
errorMessage已在资源文件中定义
其他的错误信息可以通过property标签来获取:

<s:property value="exception" />
<s:property value="exceptionStack" />
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值