package com.rlovep.type;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Map;
import org.apache.struts2.util.StrutsTypeConverter;
/**
*
* @ClassName: MyConverter
* @Description: 自定义的转换器对Data进行转换,与BeanUils中的自定义转换器类似
* @author peace w_peace@163.com
* @date 26 Dec 2015 3:54:36 pm
*
*/
public class MyConverter extends StrutsTypeConverter{
DateFormat[] df={new SimpleDateFormat("yyyy-MM-dd"),new SimpleDateFormat("yyyyMMdd"),
new SimpleDateFormat("yyyy年MM月dd日")
};
/*
* (非 Javadoc)
* <p>Title: convertFromString</p>
* <p>Description:把String转换为指定的类型,此去使用的是String to date </p>
* @param context 当前上下文环境
* @param values Jsp表单提交的字符串的值
* @param toclass 要转换的目标类型
* @return 返回准换后的对象
* @see org.apache.struts2.util.StrutsTypeConverter#convertFromString(java.util.Map, java.lang.String[], java.lang.Class)
*/
@Override
public Object convertFromString(Map context, String[] values, Class toclass) {
//判断:内容不能为空
if(values==null|| values.length==0)
return null;
//判断类型必须为Data
if(Date.class!=toclass)
return null;
//迭代转换:转换失败继续下一个格式的转换;转换成功就直接返回
for(int i=0;i<df.length;i++){
try{
return df[i].parse(values[0]);
}catch(ParseException e){
continue;
}
}
return null;
}
@Override
public String convertToString(Map arg0, Object arg1) {
return null;
}
}