Java BeanUtilsBean:将日期转换为字符串 [英] Java BeanUtilsBean : Convert Date to String

查看:20
本文介绍了Java BeanUtilsBean:将日期转换为字符串的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试运行 BeanUtilsBean.getInstance().populate(...) 但在 HTML 表单上,有一个字段携带出生日期的字符串表示形式.对象 bean 的字段类型为 java.util.Date

I am trying to run BeanUtilsBean.getInstance().populate(...) but on the HTML form, there is a field that carries String representation of Date of Birth. The object bean has the field type of java.util.Date

阅读来自 Ggl 的一些搜索,这些搜索必须构建自定义转换器,但不太了解如何做到这一点.

Read some search from Ggl that have to build custom converters but not quite understand how to do that.

有人可以帮忙吗?

我的代码:

public static void main(String[] args) {
    Map<String, String[]> formData = new HashMap<String, String[]>();
    formData.put("email", new String[]{"danny@gmail.com"});
    formData.put("firstName", new String[]{"danny"});
    formData.put("lastName", new String[]{"miller"});
    formData.put("dob", new String[]{"15-Apr-1980"});
    formData.put("userName", new String[]{"dannymiller"});
    try {
        Consumer consumer = new Consumer();
        DateTimeConverter dtConverter = new DateConverter();
        dtConverter.setPattern("dd/MMM/yyyy");

        ConvertUtilsBean convertUtilsBean = new ConvertUtilsBean();
        convertUtilsBean.deregister(Date.class);
        convertUtilsBean.register(dtConverter, Date.class);

        BeanUtilsBean beanUtilsBean = new BeanUtilsBean(convertUtilsBean, new PropertyUtilsBean());

        beanUtilsBean.populate(consumer, formData);


        if (consumer != null) {
            System.out.println(consumer.getEmail());
            System.out.println(consumer.getFirstName());
            System.out.println(consumer.getLastName());
            System.out.println(consumer.getDob());
            System.out.println(consumer.getUserName());
        }
    } catch  (Exception e) {
        e.printStackTrace();
    }

返回错误:

2011 年 4 月 22 日晚上 11:14:45org.apache.commons.beanutils.converters.DateTimeConvertertoDate 警告:DateConverter 确实不支持默认字符串为日期"转换.2011 年 4 月 22 日晚上 11:14:45org.apache.commons.beanutils.converters.DateTimeConverter迄今为止的警告:(注意重新配置转换器或使用替代品实现)线程异常主要的"org.apache.commons.beanutils.ConversionException:DateConverter 不支持默认字符串到日期"的转换.在org.apache.commons.beanutils.converters.DateTimeConverter.toDate(DateTimeConverter.java:468)在org.apache.commons.beanutils.converters.DateTimeConverter.convertToType(DateTimeConverter.java:343)在org.apache.commons.beanutils.converters.AbstractConverter.convert(AbstractConverter.java:156)在org.apache.commons.beanutils.converters.ConverterFacade.convert(ConverterFacade.java:60)在org.apache.commons.beanutils.ConvertUtilsBean.convert(ConvertUtilsBean.java:470)在org.apache.commons.beanutils.BeanUtilsBean.setProperty(BeanUtilsBean.java:1008)在org.apache.commons.beanutils.BeanUtilsBean.populate(BeanUtilsBean.java:830)在com.ymatch.test.BeanTest.main(BeanTest.java:32)

Apr 22, 2011 11:14:45 PM org.apache.commons.beanutils.converters.DateTimeConverter toDate WARNING: DateConverter does not support default String to 'Date' conversion. Apr 22, 2011 11:14:45 PM org.apache.commons.beanutils.converters.DateTimeConverter toDate WARNING: (N.B. Re-configure Converter or use alternative implementation) Exception in thread "main" org.apache.commons.beanutils.ConversionException: DateConverter does not support default String to 'Date' conversion. at org.apache.commons.beanutils.converters.DateTimeConverter.toDate(DateTimeConverter.java:468) at org.apache.commons.beanutils.converters.DateTimeConverter.convertToType(DateTimeConverter.java:343) at org.apache.commons.beanutils.converters.AbstractConverter.convert(AbstractConverter.java:156) at org.apache.commons.beanutils.converters.ConverterFacade.convert(ConverterFacade.java:60) at org.apache.commons.beanutils.ConvertUtilsBean.convert(ConvertUtilsBean.java:470) at org.apache.commons.beanutils.BeanUtilsBean.setProperty(BeanUtilsBean.java:1008) at org.apache.commons.beanutils.BeanUtilsBean.populate(BeanUtilsBean.java:830) at com.ymatch.test.BeanTest.main(BeanTest.java:32)

推荐答案

使用此方法完成:

public Object populate(Object obj, HashMap<String, String[]> formData)
            throws IllegalAccessException, InvocationTargetException {
        ConvertUtils
                .register(new StringToDateConverter(), java.util.Date.class);
        BeanUtilsBean.getInstance().populate(obj, formData);
        return obj;
    }

这篇关于Java BeanUtilsBean:将日期转换为字符串的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆