1. 程式人生 > >Struts2宣告式異常處理

Struts2宣告式異常處理

在使用框架之前我們的程式中遇到異常,都是使用try{…}catch{…}手動捕獲解決,或者使用throws Exception將異常拋給別人去解決。在struts2框架中,異常的解決方法,更方便了,只要在struts.xml配置檔案中宣告一下就可以了。今天我們就來學習一下struts2的宣告式異常處理。

Struts2的異常處理,靠的是ExceptionMappingInterceptor異常攔截器。這個異常處理的攔截器是我們struts.xml配置檔案中繼承過的struts-default包中的一個預設攔截器,所以不用我們做額外的攔截器配置。


下面就用一個例項來感性的瞭解一下,宣告式異常處理的使用:

一、新建一個web project專案


二、匯入jar包,Build Path新增到專案中


區域性異常處理

三、web.xml中配置檔案


四、新建一個action類,名稱為:HelloWorldAction


五、新建三個頁面

1、新建一個index.jsp頁面,作為專案啟動預設載入的頁面


2、新建一個helloWorld.jsp頁面,作為成功跳轉的頁面


3、新建一個struts.xml配置檔案


六、匯出war包

現在點選專案右鍵 ---> export ---> war file ---> 點選Browser選擇war包匯出路徑 ---> finish




七、將匯出的war包放到tomcat伺服器的webapps資料夾下面


Ctrl+R開啟執行框,輸入cmd,回車開啟dos視窗,


八、啟動tomcat

使用dos命令,進入tomcat的bin資料夾下,執行startup.bat命令,啟動伺服器


Tomcat會啟動一個新的dos視窗,列印啟動日誌,看到下面的資訊即表示tomcat啟動成功。


此時war包已經自動解壓



輸入名字,點選提交按鈕,網頁直接報錯了


十、struts.xml中配置異常處理

修改struts.xml的配置檔案,增加紅框框中的兩個配置


使用和上面同樣的方法匯出war包,放到tomcat的webapps資料夾下(放之前先將上次放入的同名的那個war包和解壓後的資料夾刪除),重新啟動tomcat,


全域性異常處理

剛剛這個是我們針對某個action的特定異常做了處理,接下來,我們配置一個能捕獲所有的action中的NullPointerExcetion異常的處理,標籤是:<global-exception-mappings>,如圖:


重新匯出war包,替換tomcat中webapps中的war包,重新啟動tomcat,重新訪問專案url,點選提交,頁面如下,

(補充:我在error.jsp頁面中,新加了“捕獲所有action異常頁面”幾個字)



相關推薦

Struts2宣告異常處理

在使用框架之前我們的程式中遇到異常,都是使用try{…}catch{…}手動捕獲解決,或者使用throws Exception將異常拋給別人去解決。在struts2框架中,異常的解決方法,更方便了,只要在struts.xml配置檔案中宣告一下就可以了。今天我們就來學習一下s

Struts2宣告異常處理

在struts2應用程式中你還在使用try catch語句來捕獲異常麼?如果是這樣的,那你OUT啦!struts2支援宣告式異常處理,可以再Action中直接丟擲異常而交給struts2來處理,當然需要我們在xml檔案中配置,由於丟擲同樣的異常的處理方法通常都一樣,所以如

Struts2框架】第五節宣告異常處理-處理異常的過程

如何抓到異常的? 步驟:(以之前寫的小樣例為例) 如果CategoryService中的list方法出錯(category_表不存在):public List<Category> list()throws SQLException{ Connection c

Struts2 學習筆記10--宣告異常處理

宣告式異常處理 在程式中出現異常可以儘管往外拋,由統一介面做頁面處理 程式碼: 服務層:丟擲異常 public List<Category> list() throws SQLException { Connection conn = DB.

Struts2聲明異常處理

.com ping lob exce src 方式 技術 異常信息 -s 通過配置.xml文件的方式處理異常信息: 註意:配置.xml文件的同時還要拋出異常 標簽:<exception-mapping></exception-mapping>和<

Struts2中的異常處理

因為在Action的execute方法宣告時就丟擲了Exception異常,所以我們無需再execute方法中捕捉異常,僅需在struts.xml 中配置異常處理。 為了使用Struts2的異常處理機制,必須開啟Struts2的異常對映功能,這需要excepti

struts2宣告驗證 field-validator 的 type 屬性有哪些取值, 代表什麼含義

<validators>    <field name="user.userName">       <!-- 驗證字串不能為空 -->       <field-validator type="requiredstring">        <!-- 去

Struts2】(11)異常處理和標籤

private List myList1; private List myList2; private List myList3; public List getMyList1() { return myList1; } public List getMyList2() { retur

Python基礎知識進階(五---2)----程序基本結構、簡單分支、異常處理、三大實例分析、基本循環結構、通用循環構造方法、死循環嵌套循環、布爾表達

方法 算法 嵌套 構造方法 決策樹 輸入 繼續 實例 控制 上一篇隨筆寫的內容有點多了,決定分成兩節,不然自己看的時候也頭疼。 三者最大實例: 分支結構可以改變程序的控制流,算法不再是單調的一步步順序執行。     假設:以找出三個數字中最大者的程序設計為例。      

(十)struts2異常處理機制

原理 login 重寫 ... implement set 聲明式 nbsp con 成熟的MVC框架應該提供成熟的異常處理機制。當然可以在方法中手動捕捉異常,當捕捉到特定異常時,返回特定邏輯視圖名。 這種方式非常繁瑣,需要在方法中寫大量try catch塊,最大的缺點還是

java 異常處理宣告丟擲異常

java 異常處理宣告丟擲異常 2.宣告丟擲異常是Java中處理異常的第二種方式 2.宣告丟擲異常是Java中處理異常的第二種方式 如果一個方法(中的語句執行時)可能生成某種異常,但是並不能確定如何處理這種異常,則此方

struts2的java lang NoSuchMethodException異常處理

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

Struts2 (3) 異常處理

說到在Struts框架中的異常處理,很多人想到的應該是在Action中使用try  catch語句,然後再在配置檔案中進行進一步的處理 但是!這也 太low了吧,Struts其實有提供了更加酷和使用的異常處理方法,宣告式異常捕捉,這種方式是在Action的帶有 throws E

Oracle中游標詳細用法 隱遊標 顯遊標 異常處理 錯誤處理

  oracle中游標詳細用法 轉自:http://blog.csdn.net/liyong199012/article/details/8948952 遊標的概念:      遊標是SQL的一個記憶體工作區,由系統或使用者以變數的形式定義。遊

關於如何自定義Struts2表單驗證後的錯誤資訊顯示格式【基於宣告驗證】

網上關於很多通過修改template主題為simple達到最後的效果,但是多數是直接通過硬編碼的方式去驗證【即程式設計式驗證】,這裡就自己是怎麼通過宣告式驗證去達到格式優化的效果的,可能程式碼比較low,希望大家見諒。 首先是動作類以及登陸的jsp頁面:【StudentAc

【C#】氣泡排序、隱和顯轉換、函式及異常處理

一、普通氣泡排序: C#中常見的排序方法有:氣泡排序,快速排序,插入排序,選擇排序、堆排序以及歸併排序。雖然還沒學習過,但是也有耳聞,就先把它們先歸類。今天主要講這裡面最常見的氣泡排序。 【概念】 氣泡排序也就是講一組需要排序的數,進行從小到大,或從大到小的排列。計算機

spring 宣告事務配置,丟擲runtimeException異常不回滾

預設spring只在發生未被捕獲的runtimeexcetpion時才回滾。 最容易解決的辦法:程式碼級控制:TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); try{ ..

c++異常處理異常宣告,捕獲異常

C++ 捕獲異常的一些規則: 1.  非MFC 的c++ 異常應該用過引用來捕獲。使用引用來捕獲異常不需要刪除c++ 異常物件。因為使用引用捕獲的異常物件會在棧中傳遞。而且保持了多型性,使得你捕獲的異常正是你丟擲的異常物件。使用指標捕獲異常的話,需要你刪除異常

spring 宣告事務傳播特性詳解(包括異常回滾舉例)

1:Service介面實現 public interface IProcessBusiService {       //事務1@Transactional(readOnly = false, propagation = Propagation.REQUIRES_NEW

struts2宣告驗證

struts2框架中提供大量的內建校驗器,使用時只需對這些校驗進行配置,我們管這種方式叫做宣告驗證。其實這個流程和之前介紹的程式設計驗證是一樣的,可以參考之前輸入驗證的流程。 一.編寫配置檔案:檔名為ActionClassName-validation.xml,與要驗證屬性