我有一个Spring MVC REST后端应用程序。我发送日期为" mm / dd / yyyy"格式化为客户端。
但如果我将日期格式化为" mm / dd / yyyy"并将其POST回来,数据绑定失败。
这是我的Spring customdateserializer obj,它将日期发送到前端时将java.util.date转换为mm / dd / yyy
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......
}
答案 0 :(得分:3)
我可以说的是不要将格式化的日期发送到浏览器。发送Date
类型结构\对象让我们在客户端处理日期格式。 Angular有一个date
过滤器用于此任务。
类似于向服务器发送数据,不发送任何格式化数据,但发送模型日期值,我相信服务器端解串器会处理它。请参阅电汇上发送的格式以供您索取。