目录
系统环境
Web项目,VUE前端,Axios方法,SpringBoot+Mybatis后端,MySQL数据库
前端部分
// 处理参数(采用了深度复制)
var userInfoDto = JSON.parse(JSON.stringify(this.userInfo));
var ldcdto = JSON.parse(JSON.stringify(this.userInfo.ldcdto));
var articleDto = JSON.parse(JSON.stringify(this.article));
// 访问后端
await this.$axios.post('http://localhost:xxxx/oa/LDC/updateLDC', {
userInfoDto: userInfoDto,
ldcdto: ldcdto,
articleDto: articleDto,
})
.then(response => {
console.log(response.data);
})
.catch(error => {
console.error(error);
});
后端部分
接收参数的类
package com.sdcw.program.controller.param;
import com.sdcw.program.dto.ArticleDto;
import com.sdcw.program.dto.LikesDislikesCollectionsDto;
import com.sdcw.program.dto.UserInfoDto;
public class UpdateLDCParams {
private UserInfoDto userInfoDto;
private LikesDislikesCollectionsDto ldcdto;
private ArticleDto articleDto;
public UserInfoDto getUserInfoDto() {
return userInfoDto;
}
public void setUserInfoDto(UserInfoDto userInfoDto) {
this.userInfoDto = userInfoDto;
}
public LikesDislikesCollectionsDto getLDCDto() {
return ldcdto;
}
public void setLDCDto(LikesDislikesCollectionsDto LDCDto) {
this.ldcdto = LDCDto;
}
public ArticleDto getArticleDto() {
return articleDto;
}
public void setArticleDto(ArticleDto articleDto) {
this.articleDto = articleDto;
}
}
controller
package com.sdcw.program.controller;
import com.sdcw.program.controller.param.UpdateLDCParams;
import com.sdcw.program.dto.ArticleDto;
import com.sdcw.program.dto.LikesDislikesCollectionsDto;
import com.sdcw.program.dto.UserInfoDto;
import com.sdcw.program.service.LikeDislikeCollectionService;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import javax.naming.ldap.LdapContext;
@RestController
@RequestMapping("/LDC")
public class LikeDislikeCollectionController {
@Resource
private LikeDislikeCollectionService LDCService;
// 更新点赞、点踩、收藏
@RequestMapping("/updateLDC")
public int updateLDC(@RequestBody UpdateLDCParams params) {
// 提取参数
UserInfoDto userInfoDto = params.getUserInfoDto();
LikesDislikesCollectionsDto LDCDto = params.getLDCDto();
ArticleDto articleDto = params.getArticleDto();
// 设置参数
userInfoDto.setLDCDto(LDCDto);
userInfoDto.setArticleDto(articleDto);
int rst = LDCService.updateLDC(userInfoDto);
return rst;
}
}
踩坑提醒
前端->后端,对象不可包含对象
前端给后端传递参数时,如果你传递的是一个对象,则这个对象里不可再包含一个对象,否则后端会报错。但是后端给前端返回结果时是没有这个限制的。