天天看點

Struts2 類型轉換器

因為頁面一般傳回action的都是String,比如日期20101110,在action接收時,如果是java.util.Date類型,就需要類型轉換。

(一)局部類型轉換器

(1)編寫類型轉換類,需要繼承DefaultTypeConverter,并重寫  Object convertValue(Map context, Object value, Class toType) 方法。其中,context即ognl中的上下文,value是從頁面傳入的參數,一般為String[],這樣對複選框checkbox,也适用。 toType為要轉換的目标類型

public Object convertValue(Map context, Object value, Class toType) {
		
		try{ 
		SimpleDateFormat sm = new SimpleDateFormat("yyyyMMdd");
		if (toType==Date.class) {
			String[] dateStr = (String[])value;		 
				return sm.parse(dateStr[0]);	 
		}
		}catch (Exception e) {
			e.printStackTrace();
		}
		return "";
 	}
           

(2)在action的包下面放入一個properties檔案,檔案名規範:action的class名稱-conversion.properties檔案。

birthday=cn.hp.type.converter.DateTypeConverter
           

(二)全局類型轉換器

在WEB-INF/classes下放置xwork-conversion.properityes檔案。

内容為

目标轉換的類型=類型轉換器的全名

java.util.Date=converter.DateTypeConverter