Struts2声明式异常处理

Struts2支持声明式异常处理,不需要每个exception都捕获

方法只需throws Exception 即可

xml中配置如下

1、全局异常

<!-- 全局的配置,该pacakage中所有action异常都会跳转到/error.jsp -->
     <global-results>
            <result name="error">/error.jsp</result>
        </global-results>
        <global-exception-mappings>
            <exception-mapping exception="java.lang.Exception" result="error"/>
        </global-exception-mappings>

2、局部异常

<!-- 局部异常 ,只在该action下有效,父节点为<action></action> -->
<result name="error">/error.jsp</result>
        <exception-mapping result="error" exception="java.lang.Exception"></exception-mapping>

error.jsp页面中插入<s:debug></s:debug>标签

可观察到 值栈栈顶对象为ExceptionHolder,jsp页面可通过如下代码获取错误信息

<s:debug></s:debug>
<s:property value="exception.message"/><!-- 错误信息 -->
<br>
<s:property value="exceptionStack"/>

exception拦截器位于默认拦截器栈defaultStack的栈顶

所有Action请求先要被exception拦截 所以 栈里面的所有拦截器抛出异常最终都会被exception拦截器拦截

时间: 2024-10-12 15:36:47

Struts2声明式异常处理的相关文章

Struts2的声明式异常处理

1.例如SSH中在数据库连接失败时进行增删查改,会出现org.springframework.transaction.CannotCreateTransactionException的问题 (1).在可能出现错误的方法throws public Session getSession() throws CannotCreateTransactionException { return sessionFactory.getCurrentSession(); } (2).struts.xml <glo

Struts2学习第八课 声明式异常处理

异常处理:exception-mapping元素 exception-mapping元素:配置当前的action的声明式异常处理 exception-mapping元素有两个属性: --exception:指定需要铺货的异常类型 --result:指定一个响应结果,该结果将在捕获到指定异常时被执行,既可以来自当前action的声明也可以来自global-results声明. 可以通过global-exception-mappings元素为应用程序提供一个全局性的异常补货映射,但是在global-

Struts学习笔记_声明式异常处理

一,声明式异常处理: 第一步:首先在有可能抛出异常的方法里面throws exception public List<Category> list() throws SQLException { Connection conn = DB.createConn(); String sql = "select * from _category_"; //数据库里面没有这个table,产生异常 PreparedStatement ps = DB.prepare(conn, sql

6.声明式异常处理、I18N

声明式异常处理 1.在Action 中进行异常映射 <exception-mapping result="error" exception="java.sql.SQLException" /> <result name="error">/error.jsp</result> 2.在Package 中进行全局映射 <global-results> <result name="error

声明式异常处理

<package name="dealException" extends="struts-default"> <global-results> <result name="error">/error.jsp</result> </global-results> <global-exception-mappings> <exception-mapping result=

Struts2的输入验证(二)-声明式验证证框架的原理

一.Struts2 声明式验证原理解析 1.Struts2 默认的拦截器栈中提供了一个 validation 拦截器,validation 拦截器负责加载和执行已注册的验证程序. 其运行时序图如下: 2.每个具体的验证规则都会对应具体的一个验证器,有一个配置文件把验证规则名称和验证器关联起来了,而实际上执行验证的就是那个验证器.  该文件位于 com.opensymphony.xwork2.validator.validators 下的 default.xml. 如下图所示: 3.配置文件与验证

struts2学习笔记(6)------配置struts2中的异常处理

我们平常的异常处理是直接在方法中手动捕捉异常,当捕捉到特定异常后,返回特定逻辑视图名.这样的缺点是代码与异常处理耦合太多,一旦要改变异常处理方式,需要修改代码! struts2提供给了一种更好的方式来处理异常------声明式的方式管理异常处理,我们可以通过再方法里将出现的异常throw出去,抛给struts2框架处理,然后再struts2中默认开启着异常映射功能,该功能在struts-default.xml中配置的一个拦截器,如下: <interceptor name="exceptio

[原创]java WEB学习笔记70:Struts2 学习之路-- 输入验证,声明式验证,声明是验证原理

本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱好者,互联网技术发烧友 微博:伊直都在0221 QQ:951226918 -----------------------------------------------------------------------------------------------------------------

Struts2中的异常处理

因为在Action的execute方法声明时就抛出了Exception异常,所以我们无需再execute方法中捕捉异常,仅需在struts.xml 中配置异常处理. 为了使用Struts2的异常处理机制,必须打开Struts2的异常映射功能,这需要exception拦截器.在struts-default.xml文件中已经开启了exception拦截器. 声明式异常捕捉 Struts2的异常处理机制是通过在struts.xml文件中配置<exception-mapping--/>元素完成的,配置