异常配置相关问题
1.异常配置包括哪两种配置?分别如何配置,请具体回忆。
分为单个异常处理和全局异常处理。
1.配置单个异常处理:
exception-mapping 元素
1)action的子标签
2)配置当前action的声明式异常处理包含两个属性:
exception:异常的全类名
result:返回结果
<action name="product-save" class="com.atguigu.struts2.helloworld.Product"
method="save">
<exception-mapping result="input" exception="java.lang.ArithmeticException"></exception-mapping>
<result name="details">/WEB-INF/pages/details.jsp</result>
<result name="input">/input.jsp</result>
</action>
2.配置全类异常处理
global-exception-mappings元素
1)package子标签
2)语法示例如下:
<global-results><!--必须放在global-exception-mappings之前,否则报错,并且在action方法之前-->
<result name="input">/input.jsp</result>
</global-results>
<global-exception-mappings>
<exception-mapping result="input" exception="java.lang.ArithmeticException"></exception-mapping>
</global-exception-mappings>
2.异常是通过哪个类进行处理的?异常信息在值栈中是如何放置的?如何在页面中获取报错信息?
1.声明式异常处理机制由 ExceptionMappingInterceptor 拦截器负责处理。
2.当某个 exception-mapping 元素声明的异常被捕获到时, ExceptionMappingInterceptor 拦截器就会向 ValueStack 中添加两个对象:
exception: 表示被捕获异常的 Exception 对象
exceptionStack: 包含着被捕获异常的栈
3.获取报错信息代码如下:
<s:property value="exception"/>
<br>
<s:property value="exception.message"/>
3.Struts2自动将Action对象放入到值栈的时间点是什么?请回忆。
1)先创建一个StrutsActioinProxy对象中
2)在创建StrutsActionProxy之后,对其进行初始化,把Action对象放入了值栈中。
4.回忆通用标签,包括:property 标签、url 标签、set 标签、push标签、if, else 和 elseif 标签、iterator、 标签、sort 标签、date 标签、a 标签。
property 标签
其他标签