我在使用Spring引导时出现问题,在我的Controller中,我的参数类型是Date,URL就像这样/testDateParam?date=2018-05-14
所以我写了String
到Type
转换器,但我仍然有由以下原因引起的错误:
java.lang.IllegalStateException:无法将'java.lang.String'类型的值转换为必需的类型'java.util.Date':找不到匹配的编辑器或转换策略。
调试后,我发现类convertIfNecessary
中的方法TypeConverterDelegate
为空:
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
答案 0 :(得分:0)
如果您使用的是Springboot,则不必覆盖参数转换。 只需尝试将其添加到您的控制器:
的更多信息@RequestParam @DateTimeFormat(iso = DateTimeFormat.ISO.DATE)日期日期