首页 > Spring mvc 自定义转换器未起作用原因

Spring mvc 自定义转换器未起作用原因

业务

创建优惠券

spring mvc controller

    @RequestMapping(method = RequestMethod.POST)
    public Result<String> create(CouponModel model) {//...}

调用接口

curl -X POST -d 'couponName=foo&couponPrice=30beginDate=1459500407&overDate=1459699200&...'  'http://localhost:8080/coupons'
Error 400 Bad Request

经查原来是参数是Long型, 而对应的Model是Date

private Date beginDate;

类型不匹配导致了上述的问题。

于是写了一个转换器

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());
    }
}

但是发觉压根没有生效, 哪里的问题呢?


增加joda-time包,就可以啦

<dependency>
  <groupId>joda-time</groupId>
  <artifactId>joda-time</artifactId>
  <version>2.9.4</version>
</dependency>
【热门文章】
【热门文章】