form表單數(shù)據(jù)通過(guò)@RequestBody解析成java實(shí)體類的實(shí)現(xiàn)過(guò)程
解決@RequestBody 請(qǐng)求無(wú)法接收前端數(shù)據(jù)問(wèn)題
最近寫一個(gè)前后端分離的項(xiàng)目,前端提交一個(gè)form表格想直接作為后端對(duì)象接收,結(jié)果一直返回NULL給后臺(tái)
后端controller代碼如下
@PostMapping("/user")
public Result<?> save(@RequestBody User user){
System.out.println(user.toString());
return Result.success();
}
entity類代碼如下
通過(guò)按照以往代碼通過(guò)fastJSON解析前端下劃線為駝峰命名
@Data
@AllArgsConstructor
@NoArgsConstructor
@TableName("user")
@JSONType(naming = PropertyNamingStrategy.SnakeCase)
public class User {
@TableId
private String uId;
private String uUsername;
private String uPassword;
private String uPow;
}
前端通過(guò)axios提交數(shù)據(jù)
methods:{
research(){
axios.post("/api/user",this.search)
},
}
結(jié)果死活數(shù)據(jù)過(guò)不來(lái),看了好多方法,從跨域到axios寫法排除最后到格式問(wèn)題,就算前后端數(shù)據(jù)長(zhǎng)一個(gè)樣數(shù)據(jù)都過(guò)不來(lái)
最后發(fā)現(xiàn)如果指定了JSON屬性的對(duì)應(yīng)關(guān)系后就能夠順利接收到數(shù)據(jù)了,實(shí)體類加上注釋:
@Data
@AllArgsConstructor
@NoArgsConstructor
@TableName("user")
@JSONType(naming = PropertyNamingStrategy.SnakeCase)
public class User {
@TableId
@JsonProperty(value = "uId")
private String uId;
@JsonProperty(value = "uUsername")
private String uUsername;
@JsonProperty(value = "uPassword")
private String uPassword;
@JsonProperty(value = "uPow")
private String uPow;
}
但是每個(gè)實(shí)體類都要加舒適有點(diǎn)蠢,雖然可以但是我不接受
突然想到可以用@RequsetBody傳String類型然后解析成java實(shí)體類就好了
哦吼
fastJSON解析一下舒服
@PostMapping("/user")
public Result<?> save(@RequestBody String user){
User user1 = JSONObject.parseObject(user, User.class);
System.out.println(user1.toString());
return Result.success();
}
前端一般喜歡下劃線命名,后端則喜歡駝峰命名,那么加上這一行注解就能解決問(wèn)題
@JSONType(naming = PropertyNamingStrategy.SnakeCase)
但是好像fastJSON version1.2.75之后改成別的了
總結(jié)
搞定!
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
springboot模塊里面調(diào)用另外一個(gè)模塊的方法實(shí)現(xiàn)
在Spring-Boot項(xiàng)目開發(fā)中,存在著本模塊的代碼需要訪問(wèn)外面模塊接口,本文就來(lái)介紹一下springboot模塊里面調(diào)用另外一個(gè)模塊的方法實(shí)現(xiàn),感興趣的可以了解一下2023-11-11
詳解OpenCV For Java環(huán)境搭建與功能演示
這篇文章主要介紹了x詳解OpenCV For Java環(huán)境搭建與功能演示,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-04-04
Java日常練習(xí)題,每天進(jìn)步一點(diǎn)點(diǎn)(5)
下面小編就為大家?guī)?lái)一篇Java基礎(chǔ)的幾道練習(xí)題(分享)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧,希望可以幫到你2021-07-07

