HTTP Status 400 – Bad Request
Type Status Report
Description The server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing).
Apache Tomcat/9.0.12
<form action="update" method="post">
出生日期:<input type="date" name="time">
<input type="submit" value="提交">
</form>
错误理由很简单,你传的数据有问题,要么写的约束,要么时间类型格式
解决方案:
@InitBinder
public void init(WebDataBinder binder){
SimpleDateFormat dateFormat=new SimpleDateFormat("yyyy-MM-dd");
binder.registerCustomEditor(Date.class,new CustomDateEditor(dateFormat,true));
}
还有一种注解方法,简单推荐。
参数pattern中写时间格式
@DateTimeFormat(pattern = "yyyy-MM-dd")
在控制器中还要写
@Valid
不管在bean中localdate,date都可以处理错误。
------20190103补充-------
转为json需要其他jar辅助,
<!--jsr303时间类型转json--> <dependency> <groupId>com.fasterxml.jackson.datatype</groupId> <artifactId>jackson-datatype-jsr310</artifactId> <version>2.9.4</version> </dependency>
<!--json--> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.9.7</version> </dependency>
bean类转时,还需要去掉不需要转换的json,例如handler,debug可以看出来不需要的属性
@JsonIgnoreProperties({"handler"})
时间类型也需要加上特定注解
@JsonFormat(pattern = "yyyy-MM-dd hh:mm:ss")