解決@RequestBody搭配@Data的大坑
@RequestBody搭配@Data的坑
如果用@Data修飾實體類,裡面的屬性最好不要用連續幾個相同字母,如果用千萬別用大寫。
比如下面這個User類
@Data public class User{ private Integer userId; private String tel; private String QQ; }
如果這樣寫,你在後臺方法用@RequestBody獲取到的QQ會變成null
@PostMapping(value = "/addPrivGroup") public String addUser(@RequestBody User user){ return userService.addUser(user); }
如果非要寫QQ或者qQ,要麼不用@Data自己寫getter和setter,要麼在對應屬性上加上@JsonProperty(value = “QQ”)
主要原因就是spring在接受參數的時候,不知道賦值方法是setQQ還是setqQ,導致賦值為null
@requestbody,json,Date類型轉換問題
@requestbody接收json參數 映射到 實體類中 Date(時間日期)類型轉換問題
app在傳輸Date類型數據時,與後臺接收有8小時時間差
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8") @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") private Date departureTime;
timezone主要解決“8小時”問題
以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。
推薦閱讀:
- Java前後端時間格式的轉化方式
- java日期時間格式化@JsonFormat與@DateTimeFormat的使用
- springboot前端傳參date類型後臺處理的方式
- 使用mybatis格式化查詢出的日期
- 關於@JSONField和@JsonFormat的使用區別說明