Spring mvc控制器
@RequestMapping(method = RequestMethod.GET)
public Result<String> create(Date beginDate) {
//...
}
客户端调用此api,beginDate参数使用long类型
curl 'http://localhost:8080/foos?beginDate=1459657565000'
回应是
>Error 400 Bad Request
也许spring mvc无法自动转换为多日,所以我写了一个客户转换器
public class LongToDateConverter implements Converter<Long, Date> {
@Override
public Date convert(Long source) {
if (source == null ) {
return null;
}
return new Date(source);
}
}
@Configuration
@EnableWebMvc
public class WebMvcContext extends WebMvcConfigurerAdapter {
@Override
public void addFormatters(FormatterRegistry registry) {
registry.addConverter(new LongToDateConverter());
}
}
然后我再次调用此api,仍然是同样的错误
Error 400 Bad Request
并在convert
方法中设置断点,发现它没有进入此方法,那么为什么这个转换器不起作用?
然后我将其更改为POST
方法
@RequestMapping(method = RequestMethod.POST)
public Result<String> create(CouponModel model) {
}
CouponModel:
private Date useBeginDate;
仍为Error 400 Bad Request