【发布时间】:2018-05-14 09:47:32
【问题描述】:
我在使用 Spring Boot 时遇到问题,在我的控制器中,我的参数类型是日期,URL 像这样 /testDateParam?date=2018-05-14 所以我写了一个 String 到 Type 转换器,但我仍然得到一个错误,原因是:
java.lang.IllegalStateException:无法将类型“java.lang.String”的值转换为所需类型“java.util.Date”:找不到匹配的编辑器或转换策略。
调试后发现TypeConverterDelegate类中的方法convertIfNecessary得到了null:
ConversionService conversionService = this.propertyEditorRegistry.getConversionService();
我收到了null,但如果我使用
SpringContextHolder.getBean("conversionService")
我可以获得我定义的有效转换服务:
@Bean(name="conversionService")
public ConversionServiceFactoryBean getConversionService() {
ConversionServiceFactoryBean bean = new ConversionServiceFactoryBean();
Set<Converter> converters = new HashSet<>();
converters.add(new RyderStringToDateConverter());
bean.setConverters(converters);
return bean;
}
在我创建的一个演示项目中,这工作正常,但在我的工作项目中,我真的不知道如何解决它,任何想法我将不胜感激,谢谢
ps:spring boot是2.0.1.RELEASE最新版本
【问题讨论】:
-
能否请您格式化您的问题以便阅读
-
很抱歉,感谢您为我编辑它
标签: java spring spring-boot