Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Żądanie wysłane przez klienta było niepoprawne składniowo przy użyciu @DateTimeFormat

Ponieważ używasz RequestBody z application/json typ treści, Spring użyje swojego MappingJackson2HttpMessageConverter aby przekonwertować Twój JSON na obiekt Twojego typu. Jednak podany ciąg daty, 11/14 nie pasuje do żadnego ze wstępnie skonfigurowanych wzorców dat i dlatego nie może ich poprawnie przeanalizować. MappingJackson2HttpMessageConverter , a dokładniej ObjectMapper to robi swoje, nie wie nic o @DateTimeFormat , adnotacja wiosenna.

Musisz powiedzieć Jacksonowi, jakiego wzoru daty chcesz użyć. Możesz to zrobić za pomocą niestandardowego deserializatora daty

public class CustomDateDeserializer extends JsonDeserializer<Date> {
    @Override
    public Date deserialize(JsonParser jp, DeserializationContext ctxt)
            throws IOException, JsonProcessingException {
        SimpleDateFormat format = new SimpleDateFormat("MM/yy");
        String date = jp.getText();

        try {
            return format.parse(date);
        } catch (ParseException e) {
            throw new JsonParseException(e);
        }
    }
}

Następnie po prostu opisz swoje pole, aby Jackson wiedział, jak je zdeserializować.

@JsonDeserialize(using = CustomDateDeserializer.class)
private Date test;

Możesz użyć @DateTimeFormat jeśli używasz parametrów formularza zakodowanych w adresie URL z @ModelAttribute . Spring rejestruje niektóre konwertery, które mogą konwertować wartość String z parametrów żądania na Date obiekt. Jest to opisane w deokumentacja.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysqli:czy może przygotować wiele zapytań w jednej instrukcji?

  2. 64-bitowy błąd kompilacji MySQL Connect/C++

  3. PHP MYSQL:natychmiastowy wybór + wstaw

  4. INSERT IGNORE lub INSERT GDZIE NIE W

  5. Jak sprawdzić, czy sterownik JDBC jest poprawnie zainstalowany i czy można podłączyć DB?