struts2異常處理:
struts2
提供了很多***,這裡也提供了異常處理的***,已經在
struts-default.xml
中配置好了,我們只需要宣告式應用即可,
action
方法丟擲的異常能夠被自動捕獲然後經過對映指向乙個預定義好的
result。
struts2
提供了兩種異常宣告型別:全域性和區域性異常
全域性:
區域性: 在
strust.xml
中配置了異常對映後,在程式中,我們只需一級級向上丟擲異常,
那麼當程式執行,出現對應的異常,則會根據配置的異常匹配來跳入相應的異常資訊頁面,在頁面上,我們可以使用:
這是輸出異常資訊
(throw new runtimeexception(
「出現了異常」
)中的構造引數)
輸出異常堆疊資訊
strut2的異常處理方便了很多,而在其之前的1版本呢,就沒這麼方便了……
struts1異常處理:
struts1的異常處理有手動方式、自動方式(不能解決多個引數,不能異常多個異常)、自定義統一的異常類(推薦),筆者就針對第三種方式做乙個講解。
使用自定義的異常類來繼承原始的異常。用自定義的異常類來處理整個工程的異常。在乙個異常類中使用多種異常。用乙個異常類來代表不同的異常訊息。
首先,定義自己的異常類:他要繼承runtimeexception:
當struts擷取異常時,會交給handler所指定的類來處理,handler在配置檔案中需要配置,預設的是org.apache.struts.action.exceptionhandler,但是struts的預設的handler不能處理我們自定義的異常類(大家可以將我們自己定義的異常類和runtimeexception原始碼做個簡單對比),因為裡面有其他的屬性
,因此我們需要自定義乙個handler類來專門處理我們定義統一的異常類。
exception handling,有了它就不需要我們用try/catch等捕獲異常,一旦出現了我們已經定義的異常那麼就會轉到相應得頁面,並且攜帶定製的資訊。
剩下的至於如何在struts-config.xml中配置和錯誤資訊展示頁面,在此就不再贅述了。
總之struts框架處理異常的流程
struts的控制器負責捕獲各種異常,包括控制器執行中本身丟擲的異常,以及呼叫模型的業務方法時丟擲的異常。當struts的控制器捕獲到
異常後,在異常處理**塊中,建立描述資訊的actionmessage物件把它儲存在acionmessages(或其子類actionerrors)物件中,然後把actionmessages儲存在特定範圍(配置檔案中的scope)。然後可以用檢索特定範圍內的actionmessages物件。
struts 1,2執行緒問題
昨天人問我struts 2是怎麼保證全域性變數的執行緒安全的,跟struts 1有什麼區別,我一時懵了一下,沒給解釋清,發現自己也不是特別清楚,就google了一下,打算今天做個筆記,結果今沒等google呢,就聽說google走了,可惜了了啊!還是說說 struts 執行緒安全的事吧。總的來說,s...
struts1 2中處理中文亂碼問題
在struts1.2中如何處理中文亂碼問題呢?直接寫個過濾器最方便。過濾器 public class encodingfilter implements filter public void dofilter servletrequest request,servletresponse respon...
struts1 2裡鏈結詳解
以下是各種鏈結跳轉方法 jsp2.jsp 鏈結 1 jsp2.jsp 鏈結 2 jsp2.jsp 鏈結 3 jsp2 鏈結 4 這裡的forward是定義在struts裡的 do 鏈結 5 適合鏈結同時還作一些操作的情況,在action裡跳轉 下面是跳轉並傳引數 jsp2.jsp?param 000...