自定义类型转换器
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”的配置文件(实际上是一个语言消息包)