局部把String類型的birthday變量轉換成Date類型
新建一個class,在Superclass中點擊Browse,在文本框裏輸入DefaultTypeConverter,最好選擇com.opensymphony.xwork2.conversion.impl這一項,
新建好class後,右鍵Source裏選擇Override/Implement Methods選擇convertValue(Map,Object,Member,String,Object,Class)
package cn.type.converter; //轉換器的方法類
import java.text.ParseException;import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Map;
import com.opensymphony.xwork2.conversion.impl.DefaultTypeConverter;
public class DateTypeConverter extends DefaultTypeConverter {
public Object convertValue(Map context, Object value, Class toType) {
// TODO Auto-generated method stub
System.out.println("已經進入類型轉換器");
SimpleDateFormat dateFormat=new SimpleDateFormat("yyyyMMdd");
try{
if(toType==(Date.class)){ //字符串向Date轉換時
String[] paramss= (String[]) value;
return dateFormat.parse(paramss[0]); //以數組形式轉換變量,當變量爲一個時
}
else if(toType==(String.class)){ //Date向字符串轉換時
Date date=(Date) value;
return dateFormat.format(date);
}
}
catch(ParseException e){}
return null;
}
}
package cn.action; //傳參的方法
import java.util.Date;
public class HelloWordAction {
private Date birthday;
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
public String execute() throws Exception{
return "success";
}
}
局部轉換器要在要轉換的變量類的同一個文件夾下新建File文件,命名爲變量所在類的名字-conversion.properties
文件內容birthday=cn.type.converter.DateTypeConverter//birthday是要轉換的變量名稱,右邊是重寫的方法的全名,語句後不要加任何標點符號
全局轉換器
只需要把HelloWordAction-conversion.properties改名爲xwork-conversion.properties
並把這個文件放在所有類的根目錄下,比如說src下
文件內容java.util.Date=cn.type.converter.DateTypeConverter