首页 > 代码库 > Struts学习笔记_声明式异常处理
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); 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; }
第二步:.在Actoin中进行异常映射
public String list() throws Exception { categories = categoryService.list(); return SUCCESS; }
第三步:在package中进行异常映射
1.方法一:定义action自己的异常
<struts> <constant name="struts.devMode" value="true"></constant> <package name="admin" namespace="/admin" extends="struts-default" > <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" /> //发生java.sql.SQLException异常时会跳转到error.jsp <result name="error">/error.jsp</result> </action> </package> </struts>
2.方法二:使用继承共用异常映射(把所有的异常都交给global-results 处理)
<struts> <constant name="struts.devMode" value="true"></constant> <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="java.lang.Exception"></exception-mapping> </global-exception-mappings> </package> <package name="admin" namespace="/admin" extends="bbs2009_default" > <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> --> </action> </package></struts>
二,Struts2中异常处理由拦截器实现(观察struts-default.xml)
a) 实际上Struts2的大多数功能都由拦截器实现
Struts学习笔记_声明式异常处理
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。