现在的位置: 首页 > 综合 > 正文

struts2异常处理

2013年09月02日 ⁄ 综合 ⁄ 共 1886字 ⁄ 字号 评论关闭

在struts2中提供了一些常用的拦截器,其中就包括对异常处理的拦截器,我们直接声明使用即可,下面来看个例子。

struts.xml

  1. <!DOCTYPE struts PUBLIC
  2.         "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
  3.         "http://struts.apache.org/dtds/struts-2.0.dtd">
  4. <struts>
  5.     <!-- 对默认拦截器的引入 -->
  6.     <include file="struts-default.xml" />
  7.     <package name="eticket" extends="struts-default">
  8.         <!-- 全局异常映射 -->
  9.         <global-exception-mappings>
  10.             <exception-mapping result="error" exception="java.lang.Exception">   
  11.             </exception-mapping>
  12.         </global-exception-mappings>
  13.         <action name="airTicketAction" class="AirTicketAction">
  14.             <result>airticket/airticket.jsp</result>
  15.             <result name="detail">airticket/airticketdetail.jsp</result>
  16.             <result name="order">airticket/airticketorder.jsp</result>
  17.             <result name="error">error.jsp</result>
  18.             <!-- 局部异常映射 -->
  19.             <exception-mapping result="nullPoint" exception="java.lang.NullPointerException"></exception-mapping>  
  20.             <result name="nullPoint">error.jsp</result>  
  21.         </action>
  22.     </package>
  23. </struts>

下面是一个action,产生一个异常,用于测试

AirTicketAction.java

  1. import com.opensymphony.xwork2.ActionSupport;
  2. @SuppressWarnings("serial")
  3. public class AirTicketAction extends ActionSupport {
  4.     @Override
  5.     public String execute() throws Exception {
  6.         // TODO 自动生成方法存根
  7.         //产生一个除数为0的异常
  8.         int i = 1/0;
  9.         return SUCCESS;
  10.     }
  11. }

用于显示的jsp页面

error.jsp

  1. <%@ page language="java" contentType="text/html; charset=UTF-8"
  2.     pageEncoding="UTF-8"%>
  3. <%@ taglib prefix="s" uri="/struts-tags"%>
  4. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  5. <html>
  6. <head>
  7. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  8. <title><s:text name="login.title"></s:text></title>
  9. </head>
  10. <body>
  11. <h1>出错了!</h1>
  12. <s:property value="exception.message" />
  13. <s:property value="exceptionStack" />
  14. </body>
  15. </html>

很简单,配置完成可以使用了。

【上篇】
【下篇】

抱歉!评论已关闭.