Mam proste wiosna Kontroler:Set default/globalny format daty w Spring MVC ISO 8601
@RequestMapping(value="", method=RequestMethod.GET)
public void search(MyDTO dto) {
// ...
}
I MyDTO
:
public class MyDTO {
private DateTime date;
public DateTime getDate() { return date; }
public void setDate(DateTime date) { this.date = date; }
}
I rzeczywiście można wywołać metody kontrolera z mojego lokalnego daty format: 03.10.2013 01:00
, np GET http://localhost:8080/test?date=03.10.2013 01:00
Ale chcę aplikacja szeroki format daty ISO 8601, np: 2007-03-01T13:00:00Z
Jeśli używam formatu ISO pojawia się następujący błąd:
Failed to convert property value of type 'java.lang.String' to required type
'org.joda.time.DateTime' for property 'date'; nested exception is
org.springframework.core.convert.ConversionFailedException: Failed to convert
from type java.lang.String to type org.joda.time.DateTime for value
'2013-09-25T23:05:18.000+02:00'; nested exception is
java.lang.IllegalArgumentException: Invalid format:
"2013-09-25T23:05:18.000+02:00" is malformed at "13-09-25T23:05:18.000+02:00"
Musi być jakiś sposób, aby zmienić go na java.util.Date
a także wszystkie te kontenery Data i Czas.
Właśnie znalazłem metodę addFormatters(FormatterRegistry registry)
w obrębie WebMvcConfigurationSupport
, ale tak naprawdę nie wiem jak jej użyć.