Struts2的异常处理机制
Struts2采用声明式的方法管理异常处理,因此我们无需在execute方法体内写大量的try...catch...语句来捕获异常,execute方法将产生的所有异常抛出,统一交由Struts2框架处理,我们只需在struts.xml文件中配置异常的映射机制,Struts2便能够处理并转入相应的视图资源。 
  
  异常映射可分为全局异常映射和局部异常映射,它和<result .../>的性质是一样的。 
  
  配置代码如下: 
  
  
  
  Xml代码 
  <struts> 
      <package name="struts2" extends="struts-default"> 
          <!-- 配置全局异常映射 --> 
          <global-exception-mappings> 
              <exception-mapping result="sql" exception="java.sql.SQLException"/> 
          </global-exception-mappings> 
          <action name="login" class="com.test.action.LoginAction"> 
              <!-- 配置局部异常映射 --> 
              <exception-mapping result="myException" exception="com.test.exception.MyException"/> 
              <result name="success">result.jsp</result> 
              <result name="sql">error.jsp</result> 
              <result name="myException">error.jsp</result> 
          </action> 
      </package> 
  </struts> 
  
  <struts> 
  <package name="struts2" extends="struts-default"> 
  <!-- 配置全局异常映射 --> 
  <global-exception-mappings> 
  <exception-mapping result="sql" exception="java.sql.SQLException"/> 
  </global-exception-mappings> 
  <action name="login" class="com.test.action.LoginAction"> 
  <!-- 配置局部异常映射 --> 
  <exception-mapping result="myException" exception="com.test.exception.MyException"/> 
  <result name="success">result.jsp</result> 
  <result name="sql">error.jsp</result> 
  <result name="myException">error.jsp</result> 
  </action> 
  </package> 
  </struts> 
  
  为了在异常处理页面中显示异常信息,我们可以使用<s:property/>标签来输出异常信息: 
  
  
  
  <s:property value="exception"/>:输出异常信息本身 
  
  <s:property value="exceptionStack"/>:输出异常堆栈信息