歡迎您光臨本站 註冊首頁

Struts2實現自定義轉換器和全局類型轉換器

←手機掃碼閱讀     火星人 @ 2014-03-12 , reply:0
  

在action中有個欄位是birthday是date類型,當我們傳值時必須寫成1999-01-01它才會自動類型轉換,但在有些時候有這樣的需求要寫成19990101這樣默認就不會進行自動類型轉換,這樣我們可以寫一個自定義類型轉換器,實現轉換需求。

Struts2有兩種類型轉換器:

局部:對某個action轉換類型起作用

首先要自定義類型轉換器:

  1. public class DateTypeConverter extends DefaultTypeConverter {  
  2.     @Override  
  3.     public Object convertValue(Map
  4.         SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd");  
  5.         try {   
  6.             if(toType == Date.class){//當字元串向Date類型轉換時   
  7.                 String[] params = (String[]) value;// request.getParameterValues()    
  8.                 return dateFormat.parse(params[0]);  
  9.             }else if(toType == String.class){//當Date轉換成字元串時   
  10.                 Date date = (Date) value;  
  11.                 return dateFormat.format(date);  
  12.             }  
  13.         } catch (ParseException e) {}  
  14.         return null;  
  15.     }  
  16. }  

進行註冊:

創建HelloWorldAction-conversion.properties文件 HelloWorldAction是要註冊的action後邊是規定寫法

文件內容是Action中哪個屬性要進行類型轉換並只向的內容轉換器:

birthday=cn.test.type.converter.DateTypeConverter  

全局:對所有action轉換類型起作用

在src下創建xwork-conversion.properties文件

內容為:java.util.Date=cn.test.type.converter.DateTypeConverter



[火星人 ] Struts2實現自定義轉換器和全局類型轉換器已經有291次圍觀

http://coctec.com/docs/program/show-post-71459.html