Spring MVC REST バックエンド アプリケーションがあります。日付を「mm/dd/yyyy」形式でクライアントに送信しています。
しかし、日付を「mm/dd/yyyy」でフォーマットして POST すると、データ バインディングが失敗します。
これは、日付をフロントエンドに送信するときに java.util.date を mm/dd/yyy に変換する Spring customdateserializer obj です。
public class CustomDateSerializer extends JsonSerializer<Date> {
@Override
public void serialize(Date value, JsonGenerator gen, SerializerProvider arg2) throws
IOException, JsonProcessingException {
SimpleDateFormat formatter = new SimpleDateFormat("MM/dd/yyyy");
String formattedDate = formatter.format(value);
gen.writeString(formattedDate);
}
}
データ バインディングが失敗するオブジェクトは次のとおりです。
@Entity
@Table(name = "bill")
public class Bill implements GenericObject {
@Temporal(javax.persistence.TemporalType.TIMESTAMP)
private Date billDate;
@JsonSerialize(using = CustomDateSerializer.class)
public Date getBillDate() {
return billDate;
}
public void setBillDate(Date billDate) {
this.billDate = billDate;
}
}
これが私がデータを投稿しているエンドポイントです(Spring MVCコントローラー)
@RequestMapping(value = { "/user/{userId}/bill" }, method = { RequestMethod.POST })
public void addBill(@RequestBody Bill bill_p,@PathVariable("userId") int userId,
HttpServletResponse httpResponse_p, WebRequest request_p) {
processing......
}