Struts如何收集日期形的数据

创建如下类:

[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]
action
com.xx.ActiveServlet
config /WEB-INF/struts-config.xml, /WEB-INF/struts-config-registration.xml
1
[/GS]
相关连接
http://www.javaresearch.org/forum/thread.jsp?column=20&thread=9712

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理

相关文章

开始在上面输入您的搜索词,然后按回车进行搜索。按ESC取消。

返回顶部