我的DTO具有String格式的日期字段.我的实体的日期为LocalDate.目前我正在从地图中跳过它,然后手动显式设置它(String to Date,反之亦然).
可以自动转换吗?我在Spring bean中尝试了Converter但是它给了我很多编译错误(类型转换器不接受参数,不会覆盖转换方法 – 转换()也有很多错误).
@Bean
public modelmapper studentmodelmapper() {
....
Converter
我对modelmapper不太熟悉.任何帮助是极大的赞赏.
正如建议我尝试使用LocalDate for DTO,但问题是当我在前面发送此实体(REST调用)时,我得到了JSON.
"dateOfBirth": {
"year": 1972,"month": "JANUARY","monthValue": 1,"dayOfMonth": 4,"dayOfWeek": "TUESDAY","era": "CE","dayOfYear": 4,"leapYear": true,"chronology": {
"id": "ISO","calendarType": "iso8601"
}
}
我的前端开发人员需要“YYYY-MM-DD”.
最佳答案
如果要转换为LocalDate,则需要创建一个Provider,否则ModelMap不会实例化LocalDate,因为它没有公共默认构造函数.
使用此配置,它将工作:
modelmapper modelmapper = new modelmapper();
ProviderNow();
}
};
Convertermodelmapper.createTypeMap(String.class,LocalDate.class);
modelmapper.addConverter(toStringDate);
modelmapper.getTypeMap(String.class,LocalDate.class).setProvider(localDateProvider);
测试输出:
String dateTest = "2000-09-27";
LocalDate dateConverted = modelmapper.map(dateTest,LocalDate.class);
System.out.println(dateConverted.toString()); //Output = 2000-09-27
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。