为什么客户转换器不能在春季mvc工作

时间:2016-04-03 06:57:31

标签: spring-mvc converter

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

0 个答案:

没有答案