gpt4 book ai didi

Java BeanUtilsBean : Convert Date to String

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:47:55 27 4
gpt4 key购买 nike

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

从 Ggl 中阅读一些必须构建自定义转换器但不太了解如何执行的搜索。

有人可以帮忙吗?

我的代码:

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();
}

返回错误:

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)

最佳答案

您需要一个 SimpleDateFormat 来根据指定的格式解析给定的字符串。为此,您需要手动处理转换 - 以不同的方式命名请求参数,然后手动设置它。

但是 beanutils 有一个转换实用程序,因此您可以改用它(这段代码可以为每个应用程序执行一次):

DateTimeConverter dtConverter = new DateConverter();
dtConverter.setPattern("<your custom date pattern here>");
ConvertUtils.register(dtConverter, Date.class);

关于Java BeanUtilsBean : Convert Date to String,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5757242/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com