Spring MVC контроллерspring mvc post преобразовать Long to Date?
@RequestMapping(method = RequestMethod.POST)
public Result<String> create(CouponModel model) {//...}
CuponModel:
private Date beginDate;
private Date overDate;
когда вызов этого апи
curl -X POST -d '...&beginDate=1459500407&overDate=1459699200' 'http://localhost:8080/coupons'
Error 400 Bad Request
первого ничего выход журнала ошибок, а затем изменен на debug
уровень, Ouput
Field error in object 'couponModel' on field 'beginDate': rejected value [1459500407]; codes [typeMismatch.couponModel.beginDate,typeMismatch.beginDate,typeMismatch.java.util.Date,typeMismatch]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [couponModel.beginDate,beginDate]; arguments []; default message [beginDate]]; default message [Failed to convert property value of type 'java.lang.String' to required type 'java.util.Date' for property 'beginDate'; nested exception is org.springframework.core.convert.ConversionFailedException: Failed to convert from type java.lang.String to type @javax.validation.constraints.NotNull java.util.Date for value '1459500407'; nested exception is java.lang.IllegalArgumentException]
Как дать параметр долго преобразовать дата в модели?
Я попытался ниже пути, но он не работает
public class StringToDateConverter implements Converter<String, Date> {
@Override
public Date convert(String source) {
if (source == null) {
return null;
}
return new Date(Long.valueOf(source));
}
}
@Configuration
@EnableWebMvc
public class WebMvcContext extends WebMvcConfigurerAdapter {
@Override
public void addFormatters(FormatterRegistry registry) {
registry.addConverter(new StringToDateConverter());
}
}
да, спасибо! оно работает. если параметр подобен этому 'beginDate = 06-04-2016 & overDate = 10-04-2016', но я хочу, чтобы' new Date (1459500407) ' – zhuguowei
, и вы знаете, почему мой способ не работает? – zhuguowei