sql >> データベース >  >> RDS >> Mysql

クライアントから送信されたリクエストは、@DateTimeFormatを使用して構文的に正しくありませんでした

    RequestBodyを使用しているため application/jsonを使用 コンテンツタイプの場合、SpringはそのMappingJackson2HttpMessageConverterを使用します JSONを自分のタイプのオブジェクトに変換します。ただし、指定した日付文字列、11/14 事前設定された日付パターンのいずれとも一致しないため、正しく解析できません。 MappingJackson2HttpMessageConverter 、より具体的にはObjectMapper それは仕事をします、@DateTimeFormatについて何も知りません 、Springアノテーション。

    使用する日付パターンをジャクソンに伝える必要があります。カスタム日付デシリアライザーを使用してこれを行うことができます

    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);
            }
        }
    }
    

    次に、フィールドに注釈を付けて、ジャクソンがフィールドを逆シリアル化する方法を認識できるようにします。

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

    @DateTimeFormatを使用できます @ModelAttributeでURLエンコードされたフォームパラメータを使用していた場合 。 Springは、文字列値をリクエストパラメータからDateに変換できるいくつかのコンバータを登録します 物体。 これについては、 deocumentation。




    1. Oracle Database Security:データベース監査

    2. InformaticaPowerCenterでのEasysoftODBCドライバーの使用

    3. 外部キー-それらは私のために何をしますか?

    4. MysqlクエリGROUPbyおよびORDERby