自定义转换器: 创建一个类,继承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