转换器怎么写呢?
1.创建转换器类继承StrutsTypeConverter
2.日期转换器
public class Date01Converter extends StrutsTypeConverter {
private final static SimpleDateFormat sdf=new SimpleDateFormat("yyyy|MM|dd");
@Override
public Object convertFromString(Map arg0, String[] values, Class arg2) {
// TODO 自动生成的方法存根
try {
if(values.length<=1) {
return sdf.parse(values[0]);//parse可以将String类型的字符串转换为特定格式的date类型
}
} catch (ParseException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
return null;
}
@Override
public String convertToString(Map arg0, Object obj) {
// TODO 自动生成的方法存根
return sdf.format((Date)obj);//将日期date对象转换为String类型的字符串
}
}
3.普通转换器
public class PointConverter extends StrutsTypeConverter {
@Override
public Object convertFromString(Map arg0, String[] values, Class arg2) {
// TODO 自动生成的方法存根
Point point=null;
if(values.length<=1) {
String str=values[0];
String[] coordinates=str.split(",");
point=new Point();
point.setX(Integer.parseInt(coordinates[0]));
point.setY(Integer.parseInt(coordinates[1]));
}
return point;
}
@Override
public String convertToString(Map arg0, Object obj) {
// TODO 自动生成的方法存根
Point point=(Point)obj;
return point.getX()+","+point.getY();
}
}
1.局部类型转换器
在action包中放文件名为:ActionClassName-conversion.properties
里面放置action里面的属性-完整转换器类名(包+类)
2.全局类型转换器
在src中放文件名为xwork-conversion.properties
里面放要转换的完整类名-完整转换器类名(包+类)
model.Point=converter.PointConverter