锁定老帖子 主题:BeanUtils处理日期问题
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-04-29
如下: public static Object getObjectFromRequest(HttpServletRequest request,Object obj){ Enumeration enume=request.getParameterNames(); try{ while(enume.hasMoreElements()){ String name=enume.nextElement().toString(); Object tmp=(Object)request.getParameter(name); BeanUtils.setProperty(obj, name,tmp ); } }catch(Exception e){} return obj; } 结果在obj中有一个Timestamp类型的参数(birthday,request里对应birthday就是的值为“2007-04-25”)时抛出异常。 我把Timestamp改为Date类型也是一样。 请问这里要如何处理? 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-04-29
自己配置BeanUtilsBean.不使用BeanUtils.
|
|
返回顶楼 | |
发表时间:2007-04-29
创建ConvertUtilsBean对象,将SqlTimestampConvert的对象regiester到ConvertUtilsBean中,将ConvertUtilsBean设置到BeanUtilsBean.
|
|
返回顶楼 | |
发表时间:2007-04-29
谢谢!
按你所说的搞定了 |
|
返回顶楼 | |
发表时间:2007-04-30
shim 写道 我想把request里的参数值自动装入一个类中。
如下: public static Object getObjectFromRequest(HttpServletRequest request,Object obj){ Enumeration enume=request.getParameterNames(); try{ while(enume.hasMoreElements()){ String name=enume.nextElement().toString(); Object tmp=(Object)request.getParameter(name); BeanUtils.setProperty(obj, name,tmp ); } }catch(Exception e){} return obj; } 结果在obj中有一个Timestamp类型的参数(birthday,request里对应birthday就是的值为“2007-04-25”)时抛出异常。 我把Timestamp改为Date类型也是一样。 请问这里要如何处理? |
|
返回顶楼 | |
发表时间:2007-04-30
先建一个Converter对象 import org.apache.commons.beanutils.Converter; public class DateConvert implements Converter{ public Object convert(Class arg0, Object arg1) { String p = (String)arg1; if(p== null || p.trim().length()==0){ return null; } try{ SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd"); return df.parse(p.trim()); } catch(Exception e){ return null; } } } 在使用之前先注册 import org.apache.commons.beanutils.ConvertUtils; ConvertUtils.register(new DateConvert(), java.util.Date.class); 这样再用BeanUtils就没问题了 |
|
返回顶楼 | |
发表时间:2007-04-30
sinper 写道 先建一个Converter对象 import org.apache.commons.beanutils.Converter; public class DateConvert implements Converter{ public Object convert(Class arg0, Object arg1) { String p = (String)arg1; if(p== null || p.trim().length()==0){ return null; } try{ SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd"); return df.parse(p.trim()); } catch(Exception e){ return null; } } } 在使用之前先注册 import org.apache.commons.beanutils.ConvertUtils; ConvertUtils.register(new DateConvert(), java.util.Date.class); 这样再用BeanUtils就没问题了 ls的.这样就只能用BeanUtilsBean了。不能直接使用BeanUtils了. 不过apache的小项目,还是挺方便使用的.简单易用就行了. |
|
返回顶楼 | |
发表时间:2007-04-30
我试过还可以使用BeanUtils的
dest有个Date类型的字段,source有对应的String字段 ConvertUtils.register(new DateConvert(), java.util.Date.class); BeanUtils.copyProperties(dest,source); //正常访问,不需要使用BeanUtilsBean实例 |
|
返回顶楼 | |
发表时间:2007-04-30
sinper 写道 我试过还可以使用BeanUtils的
......是不是版本不一样啊?加东西了?晕.
dest有个Date类型的字段,source有对应的String字段 ConvertUtils.register(new DateConvert(), java.util.Date.class); BeanUtils.copyProperties(dest,source); //正常访问,不需要使用BeanUtilsBean实例 |
|
返回顶楼 | |
发表时间:2007-04-30
jar文件里的版本信息
Manifest-Version: 1.0 Ant-Version: Apache Ant 1.5.3 Created-By: 1.4.1_01-b01 (Sun Microsystems Inc.) Extension-Name: org.apache.commons.beanutils Specification-Title: Jakarta Commons Beanutils Specification-Vendor: Apache Software Foundation Specification-Version: 1.6 Implementation-Title: org.apache.commons.beanutils Implementation-Vendor: Apache Software Foundation Implementation-Version: 1.6 在ConvertUtils.deregister();之后 BeanUtils.copyProperties(dest,source);就又不能用了 |
|
返回顶楼 | |