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")