2016-04-07 28 views
0

buYay dinlendirici tarih biçimi

@Transactional 
@RequestMapping(value="/A", method = RequestMethod.POST) 
public ABean aInsert(final java.sql.Date when, final long company) { 
    A bean = new A(); 
    bean.setWhen(when); 
    bean.setCompany(entityManager.find(Company.class, company)); 
    entityManager.persist(bean); 
    return new ABean(bean.getId(), bean.getVersion(), bean.getWhen(), bean.getCompany().getId()); 
} 

gibi jdk8 bir dinlenme kontrol formu sonrası verilerin

when=1459987200000&company=1 

çağrılır ancak adı olamaz ve 400 - bad request (description The request sent by the client was syntactically incorrect.) döndürür.

Sorum şu:

  • java.sql.date varsayılan giriş dizesi biçimi nedir?

cevap

0

when=2016-04-21&company=10 İşleri, onun

yyyy-mm-dd 

diğer her biçimi için böyle özel bir Converter kayıt böylece:

@Autowired 
private final ConfigurableConversionService conversionService=null; 

@PostConstruct 
public void registerConverter() { 
    conversionService.addConverter(new Converter<String, Long>() { 
     @Override 
     public Long convert(String source) { 
      try { 
       SimpleDateFormat df = new SimpleDateFormat("yyyy-mm-dd'T'hh:mm"); 
       return df.parse(source).getTime(); 
      } catch (ParseException e) { 
       return Long.parseLong(source); 
      } 
     } 
    }); 
}