自定義轉換器: 建立一個類,繼承StrutsTypeConverter 然後實作兩個抽象方法。
比如下面的時間轉換:
convertFromString 轉成對象;
convertToString,轉成string;
隻有在使用<s:property/>的時候才能調用convertToString
package com.jelly.convert;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Map;
import org.apache.struts2.util.StrutsTypeConverter;
public class DateConvert extends StrutsTypeConverter{
private final SimpleDateFormat[] simpleDateFormat ={
new SimpleDateFormat("yyyy-MM-dd"),
new SimpleDateFormat("yyyy/MM/dd"),
new SimpleDateFormat("yyyy年MM月dd日")
};
@Override
public Object convertFromString(Map context, String[] values, Class toClass) {
java.util.Date date = null;
for(int i=0;i<simpleDateFormat.length;i++){
try {
date = simpleDateFormat[i].parse(values[0]);
} catch (ParseException e) {
continue;
}
}
return date;
}
@Override
public String convertToString(Map context, Object o) {
if(o instanceof Date){
return new SimpleDateFormat("yyyy-MM-dd").format(o);
}
return o != null ? o.toString(): null;
}
}
如果這個轉換器針對整個項目。就在src目錄下建立一個xwork-conversion.properties,在裡面寫入:java.util.Date=com.jelly.convert.DateConvert 然後就可以了
如果是針對于某個類,就放在類目了下 類名-conversion.properties