创建如下类:
[GS=JAVA]package com.ted.common.util;
import java.util.*;
import org.apache.commons.beanutils.*;
import java.text.SimpleDateFormat;
public class DateConvert implements Converter{
static SimpleDateFormat df = new SimpleDateFormat(“yyyy/MM/dd”);
public DateConvert() { }
public Object convert(Class type, Object value) {
System.out.println(“ok:”+value);
if(value instanceof String) {
try {
return df.parse((String)value);
} catch (Exception ex) {
throw new ConversionException(“输入的日期类型不合乎yyyy/MM/dd”+value.getClass());
}
}
else
{
throw new ConversionException(“输入的不是字符类型”+value.getClass());
}
}
}[/GS]
然后,将此类的一个实例注册到beanutil中
onvertUtils.register(new DateConvert(),java.util.Date.class);
java.util.Date.class参数用于表示此类负责处理date类型的转化
然后一切ok了
其实可以写一个类继承ActionServlet,在init()方法中重新注册一些解析方法就可以了。
[GS=JAVA]public class ActiveServlet extends ActionServlet {
/**
* 重载init()方法
* 为struts解析重新注册一些改造过的表单元素数据解析方法
*/
public void init() throws ServletException {
super.init();
ConvertUtils.register(new BigDecimalConverter(null), BigDecimal.class);
ConvertUtils.register(new BigIntegerConverter(null), BigInteger.class);
ConvertUtils.register(new FloatConverter(null), Float.class);
ConvertUtils.register(new IntegerConverter(null), Integer.class);
ConvertUtils.register(new LongConverter(null), Long.class);
ConvertUtils.register(new ShortConverter(null), Short.class);
ConvertUtils.register(new SqlDateConverter(null), Date.class);
ConvertUtils.register(new SqlTimeConverter(null), Time.class);
ConvertUtils.register(new SqlTimestampConverter(null), Timestamp.class);
}
}[/GS]
记住web.xml要修改:
[GS=XML]
相关连接
http://www.javaresearch.org/forum/thread.jsp?column=20&thread=9712