Struts2-学习笔记系列(8)-异常处理

后台抛出自定义异常

 1 public String execute() throws Exception {
 2
 3     if (getUser().equalsIgnoreCase("user"))
 4     {
 5         throw new ZcxException("自定义异常");
 6     }
 7     if (getUser().equalsIgnoreCase("sql"))
 8     {
 9         throw new java.sql.SQLException("用户名不能为SQL");
10     }
11     if (getUser().equals("zcx"))
12     {
13         addActionMessage("服务器提示!");
14         return SUCCESS;
15     }
16     return ERROR;
17 }

struts配置异常处理

 1
 2
 3 <package name="zcx.controller" namespace="/" extends="struts-default">
 4     <!-- 定义全局结果映射 -->
 5     <global-results>
 6         <!-- 定义当sql、root两个逻辑异常都对应exception.jsp页 -->
 7         <result name="sql">/WEB-INF/content/exception.jsp</result>
 8         <result name="root">/WEB-INF/content/exception.jsp</result>
 9     </global-results>
10
11     <!-- 定义全局异常映射 -->
12     <global-exception-mappings>
13         <!-- 当Action中遇到SQLException异常时,
14             系统将转入name为sql的结果中-->
15         <exception-mapping exception="java.sql.SQLException" result="sql"/>
16         <!-- 当Action中遇到Exception异常时,
17             系统将转入name为root的结果中-->
18         <exception-mapping exception="java.lang.Exception" result="root"/>
19     </global-exception-mappings>
20
21
22     <action name="login" class="zcx.controller.LoginAction">
23         <!-- 定义局部异常映射, 当Action中遇到MyException异常时,
24 系统将转入name为my的结果中-->
25         <exception-mapping exception="zcx.controller.ZcxException" result="my"></exception-mapping>
26         <result name="my">/WEB-INF/content/exception.jsp</result>
27         <result name="error">/WEB-INF/content/error.jsp</result>
28     </action>
29
30     <!--处理所有的action-->
31     <action name="*">
32         <!--返回对应的页面-->
33         <result>/WEB-INF/content/{1}.jsp</result>
34     </action>
35
36
37 </package>
时间: 2024-08-10 21:14:50

Struts2-学习笔记系列(8)-异常处理的相关文章

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

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

MongoDB学习笔记系列

回到占占推荐博客索引 该来的总会来的,Ef,Redis,MVC甚至Sqlserver都有了自己的系列,MongoDB没有理由不去整理一下,这个系列都是平时在项目开发时总结出来的,希望可以为各位一些帮助和启发,文章中有对新技术的研究(Mongo驱动),对老技术的回顾(代码重构),还有对架构设计的阐述等(面向接口编程,对扩展开放,对修改关闭,所以出现了IMongoRepository接口). MongoDB学习笔记系列~目录 MongoDB学习笔记~环境搭建 (2015-03-30 10:34) M

struts2学习笔记(二)—— 获取登录信息及计算在线人数

实现目的: 1.点击"Login"的超链接,进入登录页面 2.填写登录信息,提交表单,将用户信息保存进Session 3.显示用户名,并计算在线人数 4.点击"Logout"的超链接,在线人数减一,并使Session失效 Struts2实现: 1.配置web.xml文件 <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http:/

struts2学习笔记(8)-------struts2的ajax支持

struts2支持一种stream类型的Result,这种类型的Result可以直接向客户端浏览器响应二进制,文本等, 我们可以再action里面生成文本响应,然后在客户端页面动态加载该响应即可. 直接看例子: public class LoginAction { private String user; private String pass; private InputStream inputStream; public InputStream getInput(){ return inpu

vsphere学习笔记系列-cluster&amp;resources pool

cluster集群  要实现vmotion.DRS.HA等功能,EXSI主机必须是两台或以上的数量.那怎么判断vmotion等漂移功能在哪些主机执行的呢?这就引出了集群cluster的概念.所有基于vmotion的功能都是在集群内的EXSI主机实现的,VM只会在集群内做漂移. 所有EXSI主机加入集群后,CPU.内存等资源都会池化成集群的资源,由集群分配资源给VM.因此,我们可以看到在集群中,EXSI主机和VM是同等级别的排序,而不像在非集群环境中VM和EXSI是从属关系. 值得注意的是虽然由集

Struts2学习笔记(OGNL表达式)

Struts2学习笔记(OGNL表达式) Struts 2支持以下几种表达式语言: OGNL(Object-Graph Navigation Language),可以方便地操作对象属性的开源表达式语言: JSTL(JSP Standard Tag Library),JSP 2.0集成的标准的表达式语言: Groovy,基于Java平台的动态语言,它具有时下比较流行的动态语言(如Python.Ruby和Smarttalk等)的一些起特性: Velocity,严格来说不是表达式语言,它是一种基于Ja

Struts2 学习笔记(概述)

Struts2 学习笔记 2015年3月7日11:02:55 MVC思想 Strust2的MVC对应关系如下: 在MVC三个模块当中,struts2对应关系如下: Model: 负责封装应用的状态,并实现应用的功能.通常分为数据模型和业务逻辑模型,数据模型用来存放业务数据,比如订单信息.用户信息等:而业务逻辑模型包含应用的业务操作,比如订单的添加或者修改等. 封装应用状态:某些应用数据封装起来,使得视图只能通过接口获取对应的数据 响应状态查询:对应用的状态改变进行处理 暴露应用功能:暴露接口 通

struts2学习笔记(一)

一.struts2和struts1的区别 1.Action类 a) Struts1要求Action类继承于一个抽象类,Struts1普遍使用抽象类编程而不是接口 b) Struts2的Action类可以实现一个Action接口,也可以实现其他接口,使可选和定制的服务成为可能.Struts2提供一个ActionSupport基类去实现常用的接口.Action接口不是必须的,任何有execute标识的POJO对象都可以作为Struts2的Action对象. 2.线程模式 a) Struts1的Act

mongodb学习笔记系列一

一.简介和安装 ./bin/mongod --dbpath /path/to/database --logpath /path/to/log --fork --port 27017 mongodb非常的占磁盘空间, 刚启动后要占3-4G左右,--smallfiles 二.基本命令 1.登录mongodb client /use/local/mongo 2.查看当前数据库 show databases; show dbs; 两个可能 3.admin是和管理有关的库,local 是放schema有关

struts2学习笔记(7)------------ognl表达式

OGNL表达式(Object-Graph Navigation Language),大概可以理解为:对象图形化导航语言.是一种可以方便地操作对象属性的开源表达式语言. Struts2自行维护一个特定范围的"银行",Action将数据放入其中,而JSP页面可从中取数据,表面上似乎看起来像是jsp可以直接访问Action数据.. 当Action属性不再是简单的值,而是某个对象,数组,集合时,就需要使用ognl表达式来访问这些对象,数组,集合内的数据了. 1)ognl的stack Conte