public class MyDateConverter extends DefaultTypeConverter {
// 1: 重写 convertValue; 执行日期转换
@Override
public Object convertValue(Object value, Class toType) {
// value 用户输入数据 toType 转换的目标类型
// 用户输入的数据=-==> java.util.Date
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
// 1/1/1998 value 数组!
try {
String data = ((String[]) value)[0];//就是这句,为什么下标为0,麻烦回答的详细一点,谢谢了
// String data = (String) value;
Date date = null;
if (Date.class == toType) {
// 转换成 -->util.Date db
date = sdf.parse(data);
return date;
} else if (String.class == toType) {
// struts 支持数据回显 页面 tag 取值 ognl
return sdf.format(value);
} else {
return super.convertValue(value, toType);
}
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException(e);
}
}
}
String data = ((String[]) value)[0];//就是这句,为什么下标为0,麻烦回答的详细一点,谢谢了
http://www.cnblogs.com/jasonHome/p/5913933.html
我理解是struts2把请求中同名的参数值都封装到value数组中。
比如请求里面携带a[0]=x0,a[1]=x1,这时得到的value数组的内容就是[x0,x1]。
如果只是a=x,value数组内容就只有[x]。