[原创]java WEB学习笔记60:Struts2学习之路--Actioin-声明式异常处理

本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用

内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系。

本人互联网技术爱好者,互联网技术发烧友

微博:伊直都在0221

QQ:951226918

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

1.exception-mapping 元素: 配置当前 action 的声明式异常处理

2.exception-mapping 元素中有 2 个属性

   exception: 指定需要捕获的的异常类型。异常的全类名

   result: 指定一个响应结果, 该结果将在捕获到指定异常时被执行, 既可以来自当前 action 的声明, 也可以来自 global-results 声明.

3.可以通过 global-exception-mappings 元素为应用程序提供一个全局性的异常捕获映射. 但在 global-exception-mappings 元素下声明的任何 exception-mapping 元素只能引用在 global-results 元素下声明的某个 result 元素

声明式异常处理机制由 ExceptionMappingInterceptor 拦截器负责处理, 当某个 exception-mapping 元素声明的异常被捕获到时, ExceptionMappingInterceptor 拦截器就会向 ValueStack 中添加两个对象:

  exception: 表示被捕获异常的 Exception 对象

   exceptionStack: 包含着被捕获异常的栈

可以在视图上通过 <s:property> 标签显示异常消息

 <?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd"> <struts> <constant name="struts.ognl.allowStaticMethodAccess" value="true"></constant>
<package name="default" namespace="/" extends="struts-default"> <!-- 配置全局 -->
<global-results>
<result name="input">/input.jsp</result>
</global-results> <global-exception-mappings>
<exception-mapping result="input" exception="java.lang.ArithmeticException"></exception-mapping> </global-exception-mappings> <!-- 在一个action 中配置 -->
<action name="product-save" class="com.jason.struts2.Product" method="save">
<exception-mapping result="input" exception="java.lang.ArithmeticException"></exception-mapping>
<result name="input">/input.jsp</result> <result name="success">/details.jsp</result>
</action> </package> </struts>
上一篇:【网络资料】如何优雅地使用Sublime Text3


下一篇:深度学习之 TensorFlow(四):卷积神经网络