Hinweis: Der Wert vom Typ „java.util.Date“ kann nicht aus der Zeichenfolge „xxx“ deserialisiert werden: keine gültige Darstellung.

1. Frage:

        Wenn bei Datenaktualisierungsvorgängen die Hintergrunddaten Datum sind und das Front-End Daten vom Typ „String“ an den Hintergrund überträgt, kann der Typ „Datum“ die String-Daten nicht erkennen, sodass ein Fehler gemeldet wird.

2. Fehlerbeschreibung: 

 Hauptproblem:

Caused by: com.fasterxml.jackson.databind.exc.InvalidFormatException: Cannot deserialize value of type `java.util.Date` from String "2019-10-08": not a valid representation (error: Failed to parse Date value '2019-10-08': Unparseable date: "2019-10-08")
 at [Source: (PushbackInputStream); line: 1, column: 727] (through reference chain: com.wph.service.edu.entity.Teacher["joinDate"])

 3. Lösung:

Fügen Sie die Annotation @JsonFormat         zum Datentyp data in der Entitätsklasse hinzu . Schauen wir uns die Eigenschaften dieser Annotation an. Die am häufigsten verwendeten sind Zeitzone und Muster.

 Teil des Quellcodes:

@Target({ElementType.ANNOTATION_TYPE, ElementType.FIELD, ElementType.METHOD, ElementType.PARAMETER, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@JacksonAnnotation
public @interface JsonFormat {
    String DEFAULT_LOCALE = "##default";
    String DEFAULT_TIMEZONE = "##default";

    String pattern() default "";

    JsonFormat.Shape shape() default JsonFormat.Shape.ANY;

    String locale() default "##default";

    String timezone() default "##default";

    OptBoolean lenient() default OptBoolean.DEFAULT;

    JsonFormat.Feature[] with() default {};

    JsonFormat.Feature[] without() default {};

verwenden:

    @JsonFormat(timezone = "UTC",pattern="yyyy-MM-dd")
    private Date joinDate;

Guess you like

Origin blog.csdn.net/m0_56233309/article/details/127017142