Struts2下创建自定义类型转换器(表单中日期的处理)
在表單提交中需要有日期的輸入,默認的Struts2處理機制可能不能滿足需求,需要自定義一下類型轉換器。如:
String----->java.util.Date:輸入
java.util.Date------>String:輸出:查詢顯示,輸出錯誤回顯
Struts2會按照**本地默認(與操作系統的區域有關yyyy-MM-dd)**格式自動轉換
默認:yyyy-MM-dd-------java.util.Date轉換
目標:實現MM/dd/yyyy<------>java.util.Date互相轉換
類型轉換器的根源、
1、在OGNL中有一個接口為TypeConverter
2、在WebWork中DefaultTypeConverter 實現了OGNL中的TypeConverter接口
3、在Struts2中的StrutsTypeConverter繼承了WebWork中的DefaultTypeConverter類。
自定義類型轉換器
1、編寫一個類,繼承StrutsTypeConverter
2、注冊類型轉換器
a、局部類型轉換器:只為當前動作使用
1、動作類作為模型:
2、動作類和模型分開:(經常用):
在模型所在的包中,建立以下配置文件(javabean的名稱保持一致)
b、全局類型轉換器:所有動作使用
在構建路徑頂端(src路徑下),建立固定名稱為xwork-conversion.properties的配置文件
內容為
java.util.Date=com.itheima.converter.MyDateConverter
二、類型轉換失敗后的提示
a、轉換失敗,會自動轉到一個name=input的邏輯視圖,一般指向輸入的那個頁面,目的回顯(建議使用struts2的表單標簽)
b、錯誤消息提示中文版本
前提:動作類繼承ActionSupport才能使用。
在自定義的類型轉換器中,異常必須拋出不能捕獲,converterError會處理該異常,然后轉入名為input的邏輯試圖
在Action所在地包中,創建ActionName.properties,在局部資源文件中配置提示信息 invalid.fieldvalue.屬性名=錯誤信息
在input邏輯試圖對應的jsp頁面中,通過<s:fielderror/>輸出類型轉換信息。
如圖
該功能是由一個叫做conversionError攔截器負責處理的。
總結
以上是生活随笔為你收集整理的Struts2下创建自定义类型转换器(表单中日期的处理)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 配置struts.xml时extends
- 下一篇: 鞍山是哪个省哪个市(是地级市还是县级市)