歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

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

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

Struts2有兩種類型轉換器:

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

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

  1. public class DateTypeConverter extends DefaultTypeConverter {  
  2.     @Override  
  3.     public Object convertValue(Map<String, Object> context, Object value, Class toType) {  
  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

Copyright © Linux教程網 All Rights Reserved