struts 有什么好办法处理ActionForm中Date对象
我用的是struts 1.3
好像在struts中需要录入数据,但是struts不支持对Date对象的解析,大家有什么好办法去将string转换成Date吗?
------解决方案--------------------Validator里有现成的验证实例。验证通过了就可以把String转成Date了。
------解决方案--------------------用个javabean比较好做的。也更加方便点。
javabean里面用java.sql.Data
------解决方案--------------------SimpleDateFormat formatter = new SimpleDateFormat ("yyyy-MM-dd");
String s="1998-01-02";
Date date = formatter.parse(s);
------解决方案--------------------
------解决方案--------------------一般看来 是弄一个Converter 专门处理java.util.Date
主要代码如下UtilDateConverter.java
Java code
public class UtilDateConverter implements Converter {
private static SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
public Object convert(Class type, Object value) {
if (value == null) {
return value;
}
if (value instanceof Date) {
return value;
}
if (value instanceof String) {
try {
return format.parse((String)value);
} catch (ParseException ignore) {
}
}
return null;
}
}
------解决方案--------------------
测试了下,如果是java.sql.Date,页面日期的格式必须为yyyy-mm-dd,Struts才可以转换。
------解决方案--------------------
差一点点忘了,这个依赖于commons-beanutils包。我都是在form-〉vo这个时候用beanutils自动转换的,试了才知道原来struts也在用beanutils做转换,而且转换成功就赋值给ActionForm。
------解决方案--------------------
------解决方案--------------------
只要在数据库里 把 日期都定义为了 varchar(20) 了, 在页面做验证就可以了。。那样就不用那么麻烦了