struts声明式异常
一,局部exception
把action中产生的异常配置到struts-config.xml中,哪个action出现异常就在哪个action的配置中进行配置。
<action path="/login"
type="com.bjsxt.struts.LoginAction"
name="loginForm"
scope="request"
validate="false"
input="/login.jsp"
>
<!--
<exception key="user.not.found" type="com.bjsxt.struts.UserNotFoundException" path="/login_error.jsp"/>
<exception key="user.password.error" type="com.bjsxt.struts.PasswordErrorException" path="/login_error.jsp"/>
-->
<forward name="success" path="/login_success.jsp"/>
<forward name="error" path="/login.jsp"/>
</action>
exception中key表示的是国际化中对应的信息
type表示的是异常类
handler表示自定义的异常处理方式
如果要让出现异常后自动跳转到某页面,则在Action中配置属性input,或者在exception中添加path属性,其优先级高于Action中的input。
二,全局exception
<global-exceptions>
<!--
<exception key="user.not.found" type="com.bjsxt.struts.UserNotFoundException" path="/login_error.jsp"/>
<exception key="user.password.error" type="com.bjsxt.struts.PasswordErrorException" path="/login_error.jsp"/>
-->
<!--
<exception key="user.not.found" type="com.bjsxt.struts.UserNotFoundException" handler="org.apache.struts.action.ExceptionHandler"/>
<exception key="user.password.error" type="com.bjsxt.struts.PasswordErrorException" handler="org.apache.struts.action.ExceptionHandler"/>
-->
<!--
<exception key="error.exception" type="com.bjsxt.struts.ErrorCodeException" handler="com.bjsxt.struts.ErrorCodeExceptionHandler"/>
-->
<!--
<exception key="error.exception" type="com.bjsxt.struts.AppException" handler="com.bjsxt.struts.AppExceptionHandler"/>
-->
<exception key="error.exception" type="com.bjsxt.struts.AppException"/>
</global-exceptions>
三,struts实现声明式异常的方式
如果Action中出现异常,会被Action中的异常捕获并向上抛出异常,而该异常会被struts中,调用processException()方法处理异常,使用反射查找配置的异常,如果没有配置那么就判断是否是IOException异常或者是ServletException异常,如果不是抛到web容器中,如果在web.xml中配置了该异常的处理方式,那么就处理如果没有配置那么就直接显示到页面;如果在struts中配置了,那么就按照配置的处理,struts创建handler类来处理配置的异常。
转载于:https://www.cnblogs.com/jinzhengquan/archive/2011/02/15/1955124.html
struts声明式异常相关推荐
- Struts 声明式异常处理和个性化异常处理(转)
首先我们的国际化资源文件中有 user.not.found = 用户不能找到,用户名称=[{0}] user.password.error = user.password.error 第一种 声明式异 ...
- mysql事务管理及spring声明式事务中主动异常抛出使数据库回滚
mysql事务管理及spring声明式事务中主动异常抛出使数据库回滚 参考文章: (1)mysql事务管理及spring声明式事务中主动异常抛出使数据库回滚 (2)https://www.cnblog ...
- 【spring】spring基于xml的声明式事务控制
结构 domain package com.itheima.domain;import java.io.Serializable;public class Account implements Ser ...
- SpringCloud Feign声明式服务调用
SpringCloud Feign声明式服务调用 1. 加入pom依赖 2. Application.java上声明@EnableFeignClients 3. @FeignClient声明接口调用服 ...
- 9、 Struts2验证(声明式验证、自定义验证器)
1. 什么是Struts2 验证器 一个健壮的 web 应用程序必须确保用户输入是合法.有效的. Struts2 的输入验证 基于 XWork Validation Framework 的声明式验证: ...
- spring 声明式事务
Spring给了一个约定(AOP开发也给了我们一个约定),如果使用的是声明式事务,那么当你的业务方法不发生异常(或者发生异常,但该异常也被配置信息允许提交事务)时,Spring就会让事务管理器提交事务 ...
- 8.Spring整合Hibernate_2_声明式的事务管理(Annotation的方式)
声明式的事务管理(AOP的主要用途之一) (Annotation的方式) 1.加入annotation.xsd 2.加入txManager bean 3.<tx:annotation-drive ...
- 功能性,声明式和命令式编程[关闭]
功能,声明和命令式编程这两个术语是什么意思? #1楼 命令式 - 表达式描述要执行的动作序列(关联) 声明性 - 表达式是有助于程序行为的声明(关联,交换,幂等,单调) 功能 -词汇具有值作为唯一的影 ...
- SpringMVC、MyBatis声明式事务管理
2019独角兽企业重金招聘Python工程师标准>>> 采用的基本搭建环境:SpringMVC.MyBatis.MySQL.tomcat Spring事务管理分解了传 ...
最新文章
- 使用git上传代码到github
- Pandas进阶修炼120题,给你深度和广度的船新体验
- html网页滚轮滑动页面,JQuery实现鼠标滚轮滑动到页面节点
- MySQL可以同时修改两个表吗_(10)MySQL触发器(同时操作两张表)
- gns3中两个路由器分别连接主机然后分析ip数据转发报文arp协议_关于TCP/IP,必知必会的十个问题!...
- [基础题] 7.第二种(*)按如下要求编写Java程序:
- Hadoop阅读笔记(四)——一幅图看透MapReduce机制
- .net session超时设置 sessionState的相关属性
- shell 除法保留n位小数
- Android的代码同步repo
- 王道考研计算机网络笔记目录
- matlab信号加入白噪音再分离,Matlab中给信号增加白噪声
- java date获取24点_获取0点和24点时间戳的方式
- 虚拟机VMware安装ubuntu教程
- 【Leetcode】1925. Count Square Sum Triples
- 储物点的距离【前缀和】
- 移动端开发rem实现屏幕适配及处理页面加载页面坍塌样式错乱网页闪烁问题
- FAST-LIO2代码解析(一)
- Cadence LDO capless 电路,包括版图,已通过lvs ,drc检查,个人流片过,包括偏置全电路
- This application is currently offline解决办法
热门文章
- wdcp+定时运营php_豪侠汇 | 本地商家智能运营方案支持,周周聚餐,每12月调薪机会!...
- 心动警告!你有一份礼包待领取→
- 页面浏览事件之 $AppViewScreen 全埋点
- haproxy1.8安装配置
- java中执行js代码
- 网曝 Solaris 系统被砍,开发团队将大半被解雇
- LINUX_egrep及扩展正则表达式
- java运行环境(JRE)
- Android adb.exe程序启动不起来处理方法
- 成长型公司的存储架构