Struts2学习笔记(五)之异常处理机制
? ? ? ?
? ? ? ? ? ? ? ?我們在知道在軟件開發中的異常處理是很重要的,作為成熟的MVC框架的Struts2也提供了異常處理處理機制,對于一場處理:用戶發送請求-->Action控制器-->發現相應的異常-->轉到相應的試圖進行顯示錯誤信息..
? ? (一)平時我們對于出現異常,可以直接使用try{}catch(){}進行攔截處理,或者使用throw new XXXException()進行拋出異常,看下下execute()方法:
? ? ?
? ? ? ?
? ? ? (二)這個方法直接往外把異常拋給框架了,說明我們不必使用try{}catch(){},進行處理;轉而直接使用throw new XXXException()進行異常處理,即聲明式的異常處理;?
? ? ? ??
? ? ? ?下面直接看下聲明式的異常處理,這需要在struts.xml框架中進行配置,設置設計到一下一些元素和屬性:
- result:這個屬性指定了之后,當Action中出現異常的時候,系統就會轉到result素指定的頁面
- exception:在<exception-mapping.../>中,是異常處理類的異常類型,需要寫全名,包括包名;
? ? ? ? ?局部和全局異常映射配置
- 局部異常配置:把<exception-mapping>當做為Action的子元素進行配置
- 全部異常配置:使用<global-exception-mappings>然后配置<exception-mapping>這個子元素
? ? ?下面看個例子
? ?①:首先自定義一個MyCustomException類:
package com.jiangqq.exception; /* * 自定義異常類 */ public class MyCustomException extends Exception { private String M_message; public MyCustomException(String p_MeString) { super(p_MeString); this.M_message = p_MeString; } public String getM_message() { return M_message; } public void setM_message(String mMessage) { M_message = mMessage; } } ? ? ? ②:看下Action當中的關鍵代碼:
@Override public String execute() throws Exception { if (!"Hello".equals(username)) { throw new MyCustomException("用戶名錯誤....."); } if (!"World".equals(password)) { throw new MyCustomException("密碼錯誤....."); } return SUCCESS; }? ? ? ?③:struts.xml文件中的配置(先使用局部配置方法)
? ? ? ? 下面是頁面顯示異常信息:
? ? ? ?
? ? ? ? ? ? ? ? ? ??
? ? 可以看出上面是使用局部的異常的配置來進行異常處理的,下面來舉例一下使用全部異常配置
? ? ①:先看下:使用全部的異常類型定義,但是定義result屬性值對應的邏輯視圖名使用局部配置
? ??
??①:使全部的異常類型定義與result屬性值對應的邏輯視圖名都使用全部配置
? ? ? 【注意】對于局部和全局的映射配置,如果我們配置了全局映射,那就會對所有的Action都有效,但是局部配置的異常只會對當前所在的Action有效。如果局部的異常映射和全局異常配置了同一個類型的異常,在本Action內部的局部異常映射會直接覆蓋掉全局的配置
? ? ? ?(三)進行在異常的頁面異常信息輸出顯示
? ? 當我們拋出異常,在異常處理頁面上面顯示異常信息,可以使用Struts2的標簽進行輸出:(Struts2標簽配置)
<%@ taglib prefix="s" uri="/struts-tags"%>? ? ?然后使用下面的標簽:
? ? ? <s:property value="exception.message">: 輸出自定義的異常的message的信息
? ? ? ? ?
? ? ? 好了今天就學習到這里,上面有很多講的不到位之處,還望大家提出來共同交流,共同提高
? ? ??
? ? ? ?代碼下載鏈接:http://download.csdn.net/detail/jiangqq781931404/4194357
? ? ? ? ??
? ? ?
? ? ?
轉載于:https://blog.51cto.com/2939716/1376464
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的Struts2学习笔记(五)之异常处理机制的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php执行系统外部命令的四种方法
- 下一篇: 一段时间就回头看看自己走过的路