Java BeanUtilsBean:将Date转换为String [英] Java BeanUtilsBean : Convert Date to String

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

问题描述

我正在尝试运行 BeanUtilsBean.getInstance()。populate(...)但是在HTML表单上,有一个字段包含Date的字符串表示形式出生。对象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.

任何人都可以提供帮助吗?

Anyone can help?

我的代码:

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:45
org.apache.commons.beanutils.converters.DateTimeConverter
toDate警告:DateConverter执行
不支持默认字符串为'Date'
转换。 2011年4月22日下午11:14:45
org.apache.commons.beanutils.converters.DateTimeConverter
toDate警告:(NB重新配置
转换器或使用替代
实现)线程中的异常
main
org.apache.commons.beanutils.ConversionException:
DateConverter不支持默认
字符串到'Date'转换。 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。 converter.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)

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:将Date转换为String的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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