一.struts2对异常的处理
1.自定义局部异常:
<action> <exception-mapping result="sonException" exception="java.lang.ArithmeticException"></exception-mapping> </action>
2.自定义全局异常:
<!-- 配置全局异常处理 --> <global-exception-mappings> <exception-mapping result="sonException" exception="java.lang.ArithmeticException"></exception-mapping> </global-exception-mappings>
3.异常执行的优先级
>>当同时出现全局和局部异常时,局部异常优先,即局部异常优先于全局异常执行,如果全局和局部异常相同,那么将以局部异常为准.
>>当异常出现父子关系时,子异常优先.如java.lang.ArithmeticException是java.lang.Exception的子类.如果同时进行配置的话,那么以java.lang.ArithmeticException为准.
如:
<!-- 配置全局异常处理 --> <global-exception-mappings> <exception-mapping result="sonException" exception="java.lang.ArithmeticException"></exception-mapping> <exception-mapping result="fatherException" exception="java.lang.Exception"></exception-mapping> </global-exception-mappings>
<!-- 配置全局结果处理 --> <global-results> <result name="success" type="dispatcher"> /WEB-INF/success.jsp </result> <result name="sonException" type="dispatcher"> /WEB-INF/sonException.jsp </result> <result name="fatherException" type="dispatcher"> /WEB-INF/fatherException.jsp </result> </global-results>
二.struts2中的类型转换
1、内置类型转换器
HTTP没有类型的概念,只能将表单的参数,以String或String[]的方式接收.
>>1).struts2提供了内置的类型转换器,它能将string类型和8种基本类型自动转换.
>>2).struts2的内置类型转换器,能将java.util.Date与String类型自动转换,但Date类型的字符串格式必须为yyyy-MM-dd的格式;同时struts2会自动检测日期的合法性,如01-33这种就不能通过.
>>3).内置转换器,不能将String类型转换成任意javaBean类型,这里需要使用自定义转换器.
下面以实例来演示:
Address.java
TypeAction.java
type_struts.xml
sturts.xml
type.jsp
type_success.jsp
效果截图:
1),不填写地址
2),查看结果,基本类型的数据自动转换成功
3),填写地址
4),这里配置了result中的input,一时出错页面将转发到type.jsp,并使用标签自带的错误消息回显.