I am trying to run BeanUtilsBean.getInstance().populate(...) , but in the HTML form there is a field containing a string representation of the date of birth. The bean object has a field type of java.util.Date
Read some search from Ggl that should create custom converters, but didn't quite understand how to do this.
Anyone can help?
My code is:
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(); }
Return Error:
April 22, 2011 11:14:45 org.apache.commons.beanutils.converters.DateTimeConverter toDate ATTENTION: DateConverter does not support the default string in the 'Date' conversion. Apr 22, 2011 11:14:45 org.apache.commons.beanutils.converters.DateTimeConverter toDate WARNING: (NB Re-configure Converter or alternative implementation) An exception is thrown in the "main" stream org.apache.commons.beanutils.ConversionException: DateConverter does not support default settings Converting String to 'Date'. in org.apache.commons.beanutils.converters.DateTimeConverter.toDate (DateTimeConverter.java:468) in org.apache.commons.beanutils.converters.DateTimeConverter.convertToType (DateTimeConverter.javahaps43) in org.apache.commons.beanutils .converters.AbstractConverter.convert (AbstractConverter.java:156) in org.apache.commons.beanutils.converters.ConverterFacade.convert (ConverterFacade.java:60) in org.apache.commons.beanutils.ConvertUtilsBean.convert (ConvertUtilsBeanBean.evert : 470) in org.apache.commons.beanutils.BeanUtilsBean.setProperty (BeanUtilsBean.java:1008) in org.apache.commons.beanutils.BeanUtilsBean.populate (BeanUtilsBean.java:830) in com.ymatch.test.Bean. main (BeanTest.java:32)
source share