自定義類型轉換器
a、編寫一個類,繼承StrutsTypeConverter
//自定義類型轉換器:
//String--->java.util.Date MM/dd/yyyy
//java.util.Date----->String MM/dd/yyyy
public class MyDateConvertor extends StrutsTypeConverter {
private DateFormat df = new SimpleDateFormat("MM/dd/yyyy");
//String--->java.util.Date MM/dd/yyyy
//values:用戶輸入的值
//toClass:目標類型
public Object convertFromString(Map context, String[] values, Class toClass) {
if(toClass==Date.class){
if(values!=null&&values.length>0){
String sdate = values[0];
try {
return df.parse(sdate);
} catch (ParseException e) {
throw new RuntimeException(e);
}
}
}
return null;
}
//java.util.Date----->String MM/dd/yyyy
public String convertToString(Map context, Object o) {
if(o instanceof Date){
Date d = (Date)o;
return df.format(d);
}
return null;
}
}
2.注冊類型轉換器
2.1局部類型轉換器:給某個動作用的
在動作類所在的包中,建立一個“動作類名-conversion.properties”的配置文件
2.2全局類型轉換器:
在構建路徑的頂端(WEB-INF/classes)目錄下建立名稱為xwork-conversion.properties的配
置文件,按照要轉換的目標類型進行轉換器的配置。
3.轉換失敗時的數據回顯和錯誤提示
前提:動作類需要繼承ActionSupport
出現轉換失敗時,由一個名字為conversionError攔截器負責處理的。會把錯誤信息封裝起來,并且轉向一個叫做input的邏輯視圖(用于回顯數據)。
更改默認的錯誤提示:
在動作類的包中,建立一個“動作類名.properties”的配置文件(實際上是一個語言消息包)