Struts2学习笔记 | 异常处理:exception-mapping元素

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

  • exception-mapping元素中有两个属性
    <exception-mapping exception="java.lang.ArithmeticException" result="input"></exception-mapping>
    其中exception:指定需要捕获的异常类型,异常的全类名
    其中result:指定一个响应结果,该结果将在捕获到指定异常时被执行,既可以来自当前action的声明,也可以来自global-results声明

<action name="product-save" class="struts.valuestack.Product" method="save">
      <!-- 节点中的result属性将会匹配与name属性一致的result节点-->
      <exception-mapping exception="java.lang.ArithmeticException" result="input"></exception-mapping>
      <result name="input">/input.jsp</result>
      <result>/details.jsp</result>
</action>
  • 可以通过global-exception-mappings元素为应用程序提供一个全局性的异常捕获映射,但在global-exception-mappings元素下声明的任何exception-mapping元素只能引用在global-results元素下声明的某个result元素.
<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
        "http://struts.apache.org/dtds/struts-2.5.dtd">

<struts>
    <package name="default" extends="struts-default" strict-method-invocation="false">

        <!-- 配置全局的声明式异常 -->
        <global-results>
            <result name="input">/input.jsp</result>
        </global-results>

        <global-exception-mappings>
            <exception-mapping exception="java.lang.ArithmeticException" result="input"></exception-mapping>
        </global-exception-mappings>

    </package>
</struts>
  • 声明时异常处理机制由ExceptionMappingInterceptor拦截器负责处理,当某个exception-mapping元素声明的异常被捕获时,ExceptionMappingInterceptor拦截器就会向ValueStack中添加两个对象:
    exception:表示被捕获异常的Exception对象
    exceptionStack:包含着被捕获异常的栈
    可以在视图上通过<s:property>标签显示异常信息
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 任何成熟的框架都提供异常处理机制,当然也可以采用手动捕获异常的方式,但这种方式繁琐,最好采用声明式的方式管理异常处...
    秃头哥编程阅读 301评论 0 0
  • 1. struts.xml 文件基本配置: 主要放在资源路径下,配置 sturts2相关的 Action , 拦截...
    MPPC阅读 589评论 0 3
  • 1. 简介 1.1 什么是 MyBatis ? MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的...
    笨鸟慢飞阅读 6,280评论 0 4
  • ActionSupport 1). com.opensymphony.xwork2.ActionSupport 类...
    莫要戏言阅读 314评论 0 0
  • 1,一个完整的Java Web所涉及的内容包括:(1)Java Bean组件 (2)EJB组件 (3)自定义的JS...
    Mick_小聪阅读 1,130评论 0 1

友情链接更多精彩内容