Unable to convert String to Date durch requestBody im Frühjahr
Habe ich den folgenden Code :
DTO :
Class MyDTO {
import java.util.Date;
private Date dateOfBirth;
public Date getDateOfBirth() {
return dateOfBirth;
}
public void setDateOfBirth(Date dateOfBirth) {
this.dateOfBirth = dateOfBirth;
}
}
Controller
public void saveDOB(@RequestBody MyDTO myDTO, HttpServletRequest httprequest, HttpServletResponse httpResponse) {
System.out.println("Inside Controller");
System.out.println(myDTO.getDateOfBirth());
}
JSON Anfrage :
{
"dateOfBirth":"2014-09-04",
}
Wenn ich senden Sie die Anfrage als yyyy-mm-dd automatische Konvertierung in Datum-Objekt passiert.
- Ausgabe im controller:-
dateOfBirth= Thu Sep 04 05:30:00 TRITT 2014
Aber wenn ich senden DateofBirth in dd-mm-yyyy format nicht konvertiert String zu Datum automatisch ein.So wie ich kann ich in diesem Fall behandeln.
JSON Anfrage :
{
"dateOfBirth":"04-09-2014",
}
Ausgabe: Keine Ausgabe in der Konsole gar nicht erreicht-controller.
Ich habe versucht mit @DateTimeFormat, sondern seine nicht funktioniert.
Bin ich mit Spring 4.02 Bitte vorschlagen, gibt es eine Anmerkung, die wir benutzen können.
haben Sie einen Blick auf diese post: stackoverflow.com/questions/21505997/...
InformationsquelleAutor user3745727 | 2014-09-03
Du musst angemeldet sein, um einen Kommentar abzugeben.
@DateTimeFormat
ist für die form sichern (Befehl) Objekte. Ihre JSON verarbeitet wird (standardmäßig) von Jackson ' sObjectMapper
im Frühjahr istMappingJackson2HttpMessageConverter
(vorausgesetzt, dass Sie die neueste version von Jackson). DieseObjectMapper
hat eine Reihe von Standard-Datum-Formate verarbeiten kann. Es scheintyyyy-mm-dd
ist einer von Ihnen, aberdd-mm-yyyy
nicht.Müssen Sie registrieren Sie Ihre eigenen Datum-format mit einer
ObjectMapper
und registrieren, dassObjectMapper
mit derMappingJackson2HttpMessageConverter
. Hier sind verschiedene Möglichkeiten, das zu tun :Alternativ können Sie eine
JsonDeserializer
entweder Ihre ganze Klasse oder eines seiner Felder (Datum). Beispiele im link untenInformationsquelleAutor Sotirios Delimanolis
Liste itemCreate eine Klasse zu erweitern
JsonDeserializer
Verwenden
@JsonDeserialize(using = CustomJsonDateDeserializer.class)
annotation aufsetter
Methoden.Dank
@Varun Achar
Antwort, urlInformationsquelleAutor Jaille Chen