论坛首页 Java企业应用论坛

BeanUtils处理日期问题

浏览 12695 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-04-29  
OO
我想把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-29  
自己配置BeanUtilsBean.不使用BeanUtils.
0 请登录后投票
   发表时间:2007-04-29  
创建ConvertUtilsBean对象,将SqlTimestampConvert的对象regiester到ConvertUtilsBean中,将ConvertUtilsBean设置到BeanUtilsBean.
0 请登录后投票
   发表时间:2007-04-29  
谢谢!
按你所说的搞定了
0 请登录后投票
   发表时间: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类型也是一样。

请问这里要如何处理?
0 请登录后投票
   发表时间: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就没问题了

0 请登录后投票
   发表时间: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的小项目,还是挺方便使用的.简单易用就行了.
0 请登录后投票
   发表时间:2007-04-30  
我试过还可以使用BeanUtils的

dest有个Date类型的字段,source有对应的String字段
ConvertUtils.register(new DateConvert(), java.util.Date.class); 
BeanUtils.copyProperties(dest,source); //正常访问,不需要使用BeanUtilsBean实例
0 请登录后投票
   发表时间:2007-04-30  
sinper 写道
我试过还可以使用BeanUtils的

dest有个Date类型的字段,source有对应的String字段
ConvertUtils.register(new DateConvert(), java.util.Date.class); 
BeanUtils.copyProperties(dest,source); //正常访问,不需要使用BeanUtilsBean实例
......是不是版本不一样啊?加东西了?晕.
0 请登录后投票
   发表时间: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);就又不能用了


0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics