`

beanutils.Converter使用案例

阅读更多
Converter主要是实现类型转功能。我们通常可以定义自己的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;    
        }    
    }    
   
}    


自定义对象转换类的使用:

在使用之前先注册  



ConvertUtils.register(new DateConvert(), java.util.Date.class);  

因为要注册converter,所以不能再使用BeanUtils的静态方法了,必须创建BeanUtilsBean实例
    BeanUtilsBean beanUtils = new BeanUtilsBean(convertUtils,new PropertyUtilsBean());
   beanUtils.setProperty(bean, name, value);




项目开发案例:

/**
* 设置Struts 中数字<->字符串转换,字符串为空值时,数字默认为null,而不是0.
* 也可以在web.xml中设置struts的参数达到相同效果,在这里设置可以防止用户漏设web.xml.
*/
public static void registConverter() {
			ConvertUtils.register(new IntegerConverter(null), Integer.class);
			ConvertUtils.register(new FloatConverter(null), Float.class);
			ConvertUtils.register(new DoubleConverter(null), Double.class);
			//ConvertUtils.register(new DateConverter("yyyy-MM-dd"), Date.class);
			ConvertUtils.register(new DateConverter(null), Date.class);
			ConvertUtils.register(new StringConverter(),String.class);
		}



DateConverter:

import java.text.SimpleDateFormat;

import org.apache.commons.beanutils.Converter;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

/**
 * 简易DateConverter.
 * 供Apache BeanUtils 做转换,默认时间格式为yyyy-MM-dd,可由构造函数改变.
 *
 * @author calvin
 */
public class DateConverter implements Converter {
	private static final Log log = LogFactory.getLog(DateConverter.class);
	private SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");

	public DateConverter(String formatPattern) {
		if (StringUtils.isNotBlank(formatPattern)) {
			format = new SimpleDateFormat(formatPattern);
		}
	}

	public Object convert(Class arg0, Object value) {
		try {
			String dateStr = (String) value;

			if (StringUtils.isNotBlank(dateStr)) {
				return format.parse(dateStr);
			}
		} catch (Exception e) {
			log.error(e.getMessage(), e);
		}
		return null;
	}

}
分享到:
评论

相关推荐

    BeanMapper:比BeanUtils.copyProperties更快

    一个BeanUtils.copyProperties的小型快速替代。 起因 由于BeanUtils(Spring或Apache Commons)的copyProperties实现是利用反射实现的,它在大量调用时具有比较严重的性能问题。 BeanMapper通过javassist类库实现在...

    org.apache.commons.beanutils.jar

    `commons-license.txt`文件通常包含了Apache Commons BeanUtils的许可协议,它是Apache License 2.0,这是一个非常宽松的开源许可,允许用户自由地使用、修改和分发代码,只需保留原始作者的版权信息即可。...

    commons-beanutils.jar.zip

    在`commons-beanutils.jar.zip`压缩包中,除了核心库文件外,还包含了一个`license.txt`文件,这是Apache软件基金会发布的Apache License 2.0授权协议,它规定了该库的使用、分发和修改条件,确保了开源社区的公平...

    commons-beanutils-1.8.0.jar beanutils.jar beanutils.jar工具包

    commons-beanutils-1.8.0.jar beanutils.jar beanutils.jar工具包

    commons-beanutils.jar下载

    commons-beanutils.jar commons-beanutils.jar

    commons-beanutils.jar

    "commons-beanutils-1.8.2.jar"可能是旧版本的库文件,尽管它和"commons-beanutils.jar"可能功能相似,但为了保持代码的稳定性和兼容性,通常建议使用最新或项目指定的版本。在开发过程中,确保所有依赖库的版本匹配...

    org.apache.commons.beanutils.BeanUtils实例

    此为BeanUtils的实例。其中apache的包有一个小的BUG已在其中说明。

    json用到的jar包(commons-beanutils.jar、commons-collections-3.1.jar等)

    json相关jar包(不使用springmvc开发时)。其中包含(commons-beanutils.jar、commons-collections-3.1.jar、commons-lang-2.6.jar、commons-logging.jar、ezmorph-1.0.6.jar、json-lib-2.2.3-jdk15.jar)

    commons.jar +commons-beanutils.jar

    标题中的"commons.jar +commons-beanutils.jar"指的是Apache Commons项目中的两个核心组件:commons.jar和commons-beanutils.jar。Apache Commons是Java编程语言中的一系列小型实用程序库,为开发人员提供了各种常见...

    commons-beanutils.jar+commons-logging.jar

    Apache提供的这个beanutils包极大方便了javabean的 操作。包含了最新的commons-beanutils-1.9.3.jar和api文档,以及其依赖的commons-logging-1.2.jar包

    commons-beanutils.jar、commons-logging.jar两个包

    beanUtils 方便访问javaBean 附带支持框架 logging jar包,Apache提供的这个beanutils包极大方便了javabean的 操作。包含了最新的commons-beanutils-1.9.3.jar,以及其依赖的commons-logging-1.2.jar包

    Beanutils基本用法.doc

    - **嵌套对象属性**:`BeanUtils.getProperty(orderBean, "address.city")`。此例中,`orderBean`中包含一个名为`address`的属性,而`address`又包含一个名为`city`的属性。通过使用点分隔符,可以直接获取`city`的...

    JSF开发包:commons-beanutils.jar+commons-collections.jar+commons-digester.jar+jsf-api.jar+jsf-impl.jar+jstl.jar+standard.jar

    JSF开发所必需包:花了很长时间才收集好,很费时,现已收集好,何不分享给大家,让大家节省...commons-beanutils.jar commons-collections.jar commons-digester.jar jsf-api.jar jsf-impl.jar jstl.jar standard.jar

    commons-beanutils.jar.zip(173 k)

    commons-beanutils.jar.zip(173 k)commons-beanutils.jar.zip(173 k)commons-beanutils.jar.zip(173 k) jdbc 专用

Global site tag (gtag.js) - Google Analytics