struts的異常處理機制帶我們很大的方便。通過思考和自己作例子,覺得以下這種方式較為靈活:
首先為你的應用程式定製一套異常類。例如,先定義乙個基類(可以是虛類),注意,在此它擴充套件自runtimeexception,這是為了在struts的action中順利捕獲到。
public class baseexception extends runtimeexception
下來你可以定義幾個子類,例如:dao異常,事務處理異常,service異常等。在spring中,包
.springframework.dao下定義了一套dao異常,值得大家學習一下。
接著,在struts-cofig.xml檔案中定義全域性異常如下,此處的key屬性我已經不準備用了:
下面看一下我的處理異常的類:
package .chage.exception;
import .apache.struts.action.exceptionhandler;
import ...
public class myexceptionhandler extends exceptionhandler {
在頁面上(此頁面我們設定為請求action,即發生異常的action的input屬性),我們顯示錯誤資訊時可以使用struts標籤如下,注意,這裡顯示的資訊和資源屬性檔案無關,是你自己丟擲的:
設計良好的action應該僅僅是web層的乙個「路標指引器」,真正的邏輯方法是呼叫其他的業務bean來完成的,簡單地說,通常認為action中的**越少越好.如果採用了上面那種全域性異常處理機制,action此時就可以不用管邏輯異常了,由業務bean負責丟擲就可以了,大家就可以少寫一些action中的try catch 語塊了,也可以繞開actionerror,思路上是不是更清晰?異常在真正發生的類中被丟擲,然後向上傳遞,一直傳到action中,struts負責捕獲之,當然這裡的異常你必須已經定義過了。
注:1. 如果你不想寫 myexceptionhandler 類,當然struts-config.xml中的handler=屬性也要去掉,還有一種辦法可以顯示錯誤資訊在 jsp頁上,先引用jstl標籤庫,然後如下:
saif 讓struts1 1中實現AOP
最近做乙個基於struts1.1的專案,需要實現乙個日誌審計的功能,但又不想破壞原有 的內聚行,於是考慮到在sturts1.1中採用aop,但是由於自身缺陷,struts1.1不支援aop,只好網上求助一下外掛程式了,最後採用了saif外掛程式,發現還挺好用,故在此寫個使用方法分享一下。具體步驟如下...
struts2中的異常處理
異常處理後,能夠提供友好的使用者介面,而不是一些錯誤的 資訊.利用struts2的異常處理機制可以很方便的實現異常處理,你不再需要在action中捕獲異常,並丟擲相關的異常了,這些都交給 來幫你做了。在struts default.xml中己經設定了 因此我們可以直接使用宣告式異常.struts2 ...
JAVA反射在STRUTS中的應用
struts中action呼叫正常情況 doxx 某個動作的處理 反射機制 1 struts 動作處理action類 初始化時反射子類自身的結構,形成乙個對映,用來日後dispatchsubaction.return 存放了methods物件的map protected map getmethodm...