Struts2---声明式异常处理
在service方法里 throw抛出一个异常, 然后再方法声明上加上throws:
public List<Category> list() throws SQLException{
		Connection conn=DB.createConn();
		String sql = "select * from  _category";
		PreparedStatement ps = DB.prepare(conn, sql);
		List<Category> categories =  new ArrayList<Category>();
		try {
			 ResultSet rs=ps.executeQuery();
			 Category c = null;
			 while(rs.next()){
				 c =new Category();
				 c.setId(rs.getInt("id"));
				 c.setName(rs.getString("name"));
				 c.setDescription(rs.getString("description"));
				 categories.add(c);
			 }
		} catch (SQLException e) {
			e.printStackTrace();
			throw(e);
		}
		DB.close(ps);
		DB.close(conn);
		return categories;
	}
在调用list方法的action里 throws, 这样就不用try catch而是由struts2处理:
	public String list() throws Exception{
		categories=categoryService.list();
		return SUCCESS;
	}
struts.xml里如何配置?
<package name="admin" namespace="/admin" extends="struts-default" >
<default-action-ref name="index"/>
<action name="index">
<result>/admin/index.html</result>
</action>
<action name="*_*" class="com.bjsxt.bbs2009.action.{1}Action" method="{2}">
<result>/admin/{1}_{2}.jsp</result>
<result name="input">/admin/{1}_{2}.jsp</result>
<exception-mapping result="error" exception="java.sql.SQLException"/>
<result name="error">/error.jsp</result>
<result name="exception_handle">/admin/exception.jsp</result>
</action>
</package>
service里的sql语句改成错误的, 这样在调用页面的时候, 就会显示error.jsp.
下面是异常处理最常用的方法:
1. 配置新的package, global results, global-exception-mappings, 自己的action的包继承异常包即可.
原理:::拦截器
<package name="bbs2009_default" extends="struts-default">
<global-results>
<result name="error">/error.jsp</result>
</global-results>
<global-exception-mappings>
<exception-mapping result="error" exception="Exception"></exception-mapping>
</global-exception-mappings>
</package> <package name="admin" namespace="/admin" extends="bbs2009_default" >
<default-action-ref name="index"/>
<action name="index">
<result>/admin/index.html</result>
</action>
<action name="*_*" class="com.bjsxt.bbs2009.action.{1}Action" method="{2}">
<result>/admin/{1}_{2}.jsp</result>
<result name="input">/admin/{1}_{2}.jsp</result>
<!--<exception-mapping result="error" exception="java.sql.SQLException"/>
<result name="error">/error.jsp</result>-->
<result name="exception_handle">/admin/exception.jsp</result>
</action>
</package>
Struts2---声明式异常处理的更多相关文章
- Struts2声明式异常处理
		
通过配置.xml文件的方式处理异常信息: 注意:配置.xml文件的同时还要抛出异常 标签:<exception-mapping></exception-mapping>和< ...
 - Struts2的声明式异常处理
		
在struts2应用程序中你还在使用try catch语句来捕获异常么?如果是这样的,那你OUT啦!struts2支持声明式异常处理,可以再Action中直接抛出异常而交给struts2来 处理,当然 ...
 - Struts2学习---拦截器+struts的工作流程+struts声明式异常处理
		
这一节我们来看看拦截器,在讲这个之前我是准备先看struts的声明式异常处理的,但是我发现这个声明式异常处理就是由拦截器实现的,所以就将拦截器的内容放到了前面. 这一节的内容是这样的: 拦截器的介绍 ...
 - Struts2学习第八课 声明式异常处理
		
异常处理:exception-mapping元素 exception-mapping元素:配置当前的action的声明式异常处理 exception-mapping元素有两个属性: --excepti ...
 - struts的声明式异常处理
		
情景 使用Struts封装的下载文件的功能 当下载文件找不到的时候,struts获取的InputStream为null 这个时候,就会报500错误 java.lang.IllegalArgumentE ...
 - 6.声明式异常处理、I18N
		
声明式异常处理 1.在Action 中进行异常映射 <exception-mapping result="error" exception="java.sql.SQ ...
 - 学习Struts框架系列(三):声明式异常处理
		
在Struts1.X的版本中加入了对异常的处理Exception Handler,有了它我们可以不使用try/catch捕获异常,一旦出现了我们已经定义的异常,那么就会转到相应的页面,并且携带异常信息 ...
 - Strut2_声明式异常处理
		
Service 往外抛异常 public List<Category> list() throws SQLException{ Connection conn = DB.createCon ...
 - [原创]java WEB学习笔记60:Struts2学习之路--Actioin-声明式异常处理
		
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
 - 9、 Struts2验证(声明式验证、自定义验证器)
		
1. 什么是Struts2 验证器 一个健壮的 web 应用程序必须确保用户输入是合法.有效的. Struts2 的输入验证 基于 XWork Validation Framework 的声明式验证: ...
 
随机推荐
- replication factor
			
http://www.tuicool.com/articles/RJbIBj 关于Hadoop中replication factor解惑 时间 2014-06-09 08:00:50  ITeye ...
 - git简单常用的命令
			
git status --查看文件状态 git add+文件路径 --上传到缓存区 git add --all --全部传到缓存区 git commit -m '描述' --对上传文件做描述 git ...
 - python gui编程
			
1.准备工作 下载PyCharm 3.4(选择他的原因:1.有破解版,2.它的默认风格是PEB风格,一旦不符合PEB风格就会有提示) 下载并且安装界面设计工具wxFormBuilder 给python ...
 - div.2/C. They Are Everywhere<two pointer>
			
题意: 给出包含n (3<=n<=100000)个字符的字符串,计算出包含所有类型字符的最小区间长度. 题解: Two pointer.注意区间的处理. #include<cstdi ...
 - dump文件生成与调试(VS2008)
			
总结一下dump文件生成和调试的方法: 1:用SetUnhandledExceptionFilter捕获未处理的异常,包含头文件<windows.h>.函数原型为: LPTOP_LEVEL ...
 - combo扩展:禁止手工改变输入框的值
			
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...
 - JS的className,字体放大缩小
			
<!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content ...
 - java 继承与多态
			
Example5_11.java class 动物 { void cry() { } } class 狗 extends 动物 { void cry() { System.out.println(&q ...
 - POJ 1523 SPF (去掉割点能形成联通块的个数)
			
思路:使用tarjan算法求出割点,在枚举去掉每一个割点所能形成的联通块的个数. 注意:后来我看了下别的代码,发现我的枚举割点的方式是比较蠢的方式,我们完全可以在tarjan过程中把答案求出来,引入一 ...
 - java 基础的几种算法
			
1:冒泡排序:2个之间进行循环筛选 public void sort(int[] a) { int temp = 0; for (int i = a.length - 1; i > 0; i ...