出现这个原因是因为前台传递过来的数据我是将参数拼在网址后面的,日期传递过来就是一个字符串
但是后台实体类接收的时候是一个Date类型
我们需要写一个自己写的配置 想办法强制转换一下前台传过来的字符串类型
第一步:创建一个配置类的文件夹
第二步:新建一个类 我这里就命名为StringToDateConverter
package ;//自己的包名
import org.springframework.core.convert.converter.Converter;
import org.springframework.lang.Nullable;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class StringToDateConverter implements Converter<String, Date> {
@Nullable
@Override
public Date convert(String json) {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
return simpleDateFormat.parse(json);
} catch (ParseException e) {
e.printStackTrace();
}
return null;
}
}
第三步:创建一个自己的mvc配置类 MySpringMvcConfigurer
package ;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.convert.support.GenericConversionService;
import org.springframework.web.bind.support.ConfigurableWebBindingInitializer;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter;
import javax.annotation.PostConstruct;
@Configuration
public class MySpringMvcConfigurer implements WebMvcConfigurer {
@Autowired
private RequestMappingHandlerAdapter requestMappingHandlerAdapter;
@PostConstruct
public void addConversionConfig() {
ConfigurableWebBindingInitializer initializer = (ConfigurableWebBindingInitializer) requestMappingHandlerAdapter.getWebBindingInitializer();
if (initializer.getConversionService() != null) {
GenericConversionService genericConversionService = (GenericConversionService)initializer.getConversionService();
//添加字符串转换为日期类型的字符串
genericConversionService.addConverter(new StringToDateConverter());
}
}
}