亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > Java > 正文

Struts2中異常處理機制分析

2024-07-13 10:12:20
字體:
來源:轉載
供稿:網友

因為在Action的execute方法聲明時就拋出了Exception異常,所以我們無需再execute方法中捕捉異常,僅需在struts.xml 中配置異常處理。

為了使用Struts2的異常處理機制,必須打開Struts2的異常映射功能,這需要exception攔截器。在struts-default.xml文件中已經開啟了exception攔截器。

聲明式異常捕捉

Struts2的異常處理機制是通過在struts.xml文件中配置<exception-mapping……/>元素完成的,配置該元素時,需要指定兩個屬性:

exception:指定該異常類型的完全限定名。

result:指定邏輯視圖名。

根據<exception-mapping…../>元素出現位置的不同,異常映射又可分為兩種:

局部異常映射:將<exception-mapping… />元素作為<action…/>元素的子元素配置;

全局異常映射:將<exception-mapping… />元素作為<global-exception-mappings… />元素的子元素配置;

全局異常映射對所有的Action都有效,但局部異常映射僅對該異常映射所在的Action有效。

如果局部異常映射和全局異常映射配置了同一個異常類型,在<action…./>元素內的局部異常映射將覆蓋全局異常映射。

Struts.xml <package name="ssh2" extends="struts-default">   <global-results>      <result name="sql">/exception.jsp</result>      <result name="root">/exception.jsp</result>   </global-results>   <global-exception-mappings>      <exception-mapping exception="java.sql.SQLException" result="sql"/>      <exception-mapping exception="java.lang.Exception" result="root"/>   </global-exception-mappings>   <action name="login" class="loginAction">     <result>/welcome.jsp</result>     <result name="nullPointer">/nullPointer.jsp</result>     <exception-mapping exception="java.lang.NullPointerException" result="nullPointer"/>   </action> </package>

 

Action  public class loginAction extends ActionSupport  {    public String add() throws SQLException    {       return "toadd";    }  }

 

有異常往外拋即可。你也可以在方法里面拋,比如throw SQLException。

我們可以使用Struts2的標簽輸出異常信息:

輸出異常的message屬性信息:<s:property value="exception.message" />

輸出異常堆棧信息:<s:property value="exceptionStack" />。

有了處理系統異常的基礎,我們來看一看自定義異常:

package com.exception ;public class MyException extends Exception {  private String message;  public MyException(String message)  {      super(message);      this.message = message ;  }  public String getMessage() {     return message;  }  public void setMessage(String message) {      this.message = message;  }}public String execute() throws Exception{  if(!"hello".equals(usename) || !"world".equals(password))  {       throw new MyException("用戶名或密碼錯誤,您發現了吧!");  }  return "success" ;}

在action配置中的異常處理

<struts>  <package name="struts2" extends="struts-default">       <action name="login" class="com.struts2.LoginAction">      <exception-mapping result="myex" exception="com.exception.MyException">           </exception-mapping>      <result name="myex">/error.jsp</result>      <result name="success">/result.jsp</result>   </action>  </package> </struts>在全局配置中的異常處理<struts>  <package name="struts2" extends="struts-default">   <global-results>     <result name="myexception1">/error.jsp</result>   </global-results>   <global-exception-mappings>     <exception-mapping result="myexception1"        exception="com.exception.MyException">           </exception-mapping>   </global-exception-mappings>   <action name="login" class="com.struts2.LoginAction">      <result name="success">/result.jsp</result>   </action>  </package></struts>

錯誤頁面error.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%@ taglib prefix="s" uri="/struts-tags"%> <html> <body>  <!-- 這個exception 是 exception="com.exception.MyException" -->  <s:property value="exception.message"/> </body></html>

總結

局部異常處理比全局異常處理高,并且可覆蓋全局異常處理,如果定義了全局異常映射,那么會對所有的Action生效,反之定義了局部異常映射則會對當前Action生效,

如果在全局區域和局部區域定義了相同的異常映射,首先去局部異常區域找result結果頁面,如果找到了,則直接跳轉到錯誤結果頁面,不管全局有沒有相同的結果,都被局部所覆蓋,如果在局部區域沒找到,則去全局區域找。


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产成人精品一区二区在线| 日av在线播放中文不卡| 亚洲成人亚洲激情| 日韩欧美国产网站| 亚洲精品福利资源站| 少妇av一区二区三区| 北条麻妃99精品青青久久| 亚洲精品电影在线观看| 欧美日韩亚洲视频一区| 亚洲区免费影片| 国产精品久久久久久久久久三级| 91亚洲国产成人久久精品网站| 亚洲激情视频在线| 国产主播精品在线| 国产乱肥老妇国产一区二| 精品亚洲男同gayvideo网站| 国产亚洲精品久久久优势| 国产精品视频永久免费播放| 亚洲码在线观看| 亚洲成色999久久网站| 亚洲视频欧美视频| 国产精品老牛影院在线观看| 日韩亚洲成人av在线| 国产精品啪视频| 91欧美精品成人综合在线观看| 欧美日韩免费网站| 国产精品视频久| 国产视频精品一区二区三区| 97人人爽人人喊人人模波多| 午夜精品一区二区三区av| 国产亚洲精品久久久| 日韩电影在线观看永久视频免费网站| 中文字幕日韩免费视频| 日韩美女在线观看一区| 热99精品只有里视频精品| 日本欧美在线视频| 亚洲精品成人免费| 国产欧美中文字幕| 国产91在线高潮白浆在线观看| 日本高清久久天堂| 狠狠干狠狠久久| 国产一区二区丝袜高跟鞋图片| 欧美疯狂做受xxxx高潮| 久久精品视频在线观看| www.久久撸.com| 高清欧美性猛交| 亚洲美女黄色片| 中文字幕在线看视频国产欧美在线看完整| 亚洲成人在线网| 黑人巨大精品欧美一区免费视频| 国产不卡av在线免费观看| 亚洲最大福利视频网站| 日韩精品在线电影| 揄拍成人国产精品视频| 欧美影院成年免费版| 亚洲国内精品视频| 亚洲国产日韩欧美综合久久| 午夜精品一区二区三区视频免费看| 国产亚洲成av人片在线观看桃| 丝袜亚洲欧美日韩综合| 亚洲a级在线观看| 国产偷国产偷亚洲清高网站| 亚洲人成电影网站色…| 91精品国产91久久久久| 91探花福利精品国产自产在线| 精品露脸国产偷人在视频| 精品福利在线观看| 精品无人国产偷自产在线| 亚洲色在线视频| 欧美精品videossex性护士| 成人免费观看网址| 国产ts一区二区| 久久久999国产精品| 日韩视频中文字幕| 国a精品视频大全| 自拍亚洲一区欧美另类| 3344国产精品免费看| 亚洲国产中文字幕久久网| 欧美日韩国产色视频| 国产一区二区美女视频| 国产精品日日做人人爱| 久久久精品国产一区二区| 亚洲精品xxx| 国产一区二区三区在线看| 国产成人91久久精品| 美日韩精品免费视频| 97热精品视频官网| 性欧美长视频免费观看不卡| 亚洲精品综合久久中文字幕| 日本久久久久久久久久久| 欧洲亚洲女同hd| 久久视频免费观看| 九九热这里只有精品免费看| 亚洲成人教育av| 狠狠爱在线视频一区| 亚洲综合在线中文字幕| 国产精品成人一区| 国产成人久久久精品一区| 色www亚洲国产张柏芝| 中文字幕免费精品一区高清| 国产一区二区三区直播精品电影| 亚洲欧美一区二区精品久久久| 亚洲精品国产成人| 日韩激情av在线免费观看| 福利精品视频在线| 精品久久久精品| 日韩激情视频在线播放| 91网站免费看| 亚洲国产高清自拍| 亚洲综合一区二区不卡| 日韩av在线高清| 久久久久久久国产精品视频| 国产在线观看一区二区三区| 久久精品青青大伊人av| 综合激情国产一区| 亚洲视频自拍偷拍| 一本色道久久88综合日韩精品| 欧美性猛交xxxx久久久| 91精品在线观看视频| 欧美专区在线观看| 欧美激情aaaa| 日韩久久免费电影| 日本韩国在线不卡| 国产亚洲欧美一区| 国产精品av免费在线观看| 久久综合电影一区| 国产精品视频一区国模私拍| 日韩美女av在线| 日韩av不卡电影| 日韩女在线观看| 久久久久国产一区二区三区| 国产精品中文字幕在线观看| 精品久久久久久中文字幕| 国产精品一区久久久| 午夜精品久久久久久久久久久久| 亚洲久久久久久久久久久| 久久综合九色九九| 57pao国产精品一区| 色偷偷噜噜噜亚洲男人的天堂| 成人免费福利视频| 欧美极品少妇全裸体| 亚洲天堂av综合网| 伊人青青综合网站| 日本人成精品视频在线| 欧美成aaa人片在线观看蜜臀| 精品亚洲一区二区三区在线播放| 国内外成人免费激情在线视频| 两个人的视频www国产精品| 欧美亚洲另类视频| 日韩精品亚洲精品| 色综合色综合网色综合| 亚洲一区二区三区在线视频| 欧美日韩xxxxx| 日韩中文字幕av| 欧美日韩国产影院| 精品亚洲男同gayvideo网站| 国产热re99久久6国产精品| 91精品久久久久久久久| 中文字幕精品在线视频| 国产亚洲欧美aaaa| 一区二区三区在线播放欧美| 欧美高清在线播放| 国产精品电影久久久久电影网| 97在线视频观看|