请求既有multipartFile,也有实体的解决方案
上回书我们说到,我们在发文件上传请求的时候,携带数据
this.fileData.append('trainName', this.dataModel.trainName); // 添加培训名称
然后发送请求
this.postRequest("/manager/staffTrain/upload", this.fileData).then((resp) => {
后台接收时
@RequestMapping("upload")
@ResponseBody
public CommonVO fileUpload(@RequestParam("files") MultipartFile[] multipartFiles, String trainName) {
详细请看上一篇文章https://www.cnblogs.com/flower1360/p/14638370.html
但是这样子只能接受单个的数据,那如果我们想要接受一个实体要怎么办呢总不能一个一个的接收吧
解决方法就是将前端的试题转为Json字符串,进行传输,这样后端只要接受一个字符串,然后将其转为实体即可
1. 前端
var godsJson = JSON.stringify(this.model.updateModel)
this.fileData.append('goods', godsJson);
之后和之前一样发送请求即可
this.postRequest("/store/goods/update", this.fileData).then((resp) => {
2. 后端添加Json依赖
我采用的是fastjson
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.70</version>
</dependency>
3. 后端接口
@PostMapping("update")
public CommonVO updateGoods(@RequestParam("files") MultipartFile[] multipartFiles,@RequestParam("goods") String goodsJson){
Goods goods = JSONObject.parseObject(goodsJson, Goods.class);
return goodsService.updateGoods(multipartFiles,goods);
}
请求既有multipartFile,也有实体的解决方案的更多相关文章
- http header详解,HTTP头、请求头、响应头、实体头
Content-Language,Content-Length,Content-Type,Content-Encoding,mime分析 Accept 指定客户端能够接收的内容类型 Accept:te ...
- HTTP报头:通用报头,请求报头,响应报头和实体报头
缓存控制优先级从高到低分别是Pragma -> Cache-Control -> Expires 报头 每一个报头都是由 [名称 + ":" + 空格 + 值 + ] ...
- 远程调用get和post请求 将返回结果转换成实体类
package org.springblade.desk.utils; import org.apache.http.client.ResponseHandler; import org.apache ...
- AJAX请求遭遇未登录和Session失效的解决方案
使用技术:HTML + Servlet + Filter + jQuery 一般来说我们的项目都有登录过滤器,一般请求足以搞定.但是AJAX却是例外的,所以解决方法是设置响应为session失效. 一 ...
- angular的post请求,SpringMVC后台接收不到参数值的解决方案
这是我后台SpringMVC控制器接收isform参数的方法,只是简单的打出它的值: @RequestMapping(method = RequestMethod.POST) @ResponseBod ...
- Ajax 请求后打开新窗口被拦截的解决方案
公司业务上有个场景,需请求后台获取支付链接地址,再打开地址引导用户购买.这样的场景在其他企业应该也很场景.但是遇到个很常见的问题,Ajax后直接用window.open(url),会被浏览器作为广告拦 ...
- 部分手机浏览器存在将ajax请求当成广告过滤的情况,及解决方案
我们发现h5页面在某些浏览器请求不到数据,经过排查,是浏览器的广告拦截模块搞的鬼. 通过删减参数,发现adtype和adnum参数去掉后,接口可以正常请求,开始以为是官方拦截关键词带有ad的参数,后来 ...
- ajax请求jesery接口无法获取参数的问题解决方案
jesery是强大的RESTful api框架, 很多人在用它做web项目时会遇到这样一个问题: ajax请求jesery接口无法获取输入参数, 可明明接口已经指明了Consume是applicati ...
- axios 发 post 请求,后端接收不到参数的解决方案
问题场景 场景很简单,就是一个正常 axios post 请求: axios({ headers: { 'deviceCode': 'A95ZEF1-47B5-AC90BF3' }, method: ...
随机推荐
- VS 添加自定义--代码块 实现一秒创建方法
创建一个方法 你是不是不可避免需要敲以下至少6行代码 现在教你一个方法 实现一秒创建完整方法 首先按照代码块规则创建代码块文件 代码块意义,是什么? 请参考: https://docs.microso ...
- .net 的析构函数和dispose模式
- 关于Eclipse中使用Maven进行Install安装时候报错Perhaps you are running on a JRE rather than a JDK?解决办法
所遇到的问题: 详情报错: 英文描述: [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3. ...
- 微信小程序学习笔记四 自定义组件
1. 自定义组件 类似Vue或react中的自定义组件 小程序允许我们使用自定义组件的方式来构建页面 1.1 创建自定义组件 类似于页面, 一个自定义组件由json wxml wxss js 4个文件 ...
- twemproxy《一》
twemproxy 做redis客户端中间代理的时候,如果redis有密码时,需要在nutcracker.yml中添加密码:
- 登录用户出现‘’-bash-4.2$‘’的问题解决
Linux系统切换用户时如显示的是-bash-4.2# 而不是user@主机名 + 路径的显示方式,以往一直用的脚本也不能执行起来: 原因是在用useradd添加普通用户时,有时会丢失家目录下的环境变 ...
- 常用ADB命令汇总
网络连接 通过TCP/IP连接设备 adb connect <ip:port> 断开已有的TCP/IP连接 adb disconnect <ip:port> 监听设备上指定的端 ...
- SpringBoot快速集成SpringBootAdmin管控台监控服务
SpringBootAdmin是一个针对 Spring Boot 的 Actuator 接口进行 UI 美化封装的监控工具,它可以在列表中浏览所有被监控 spring-boot 项目的基本信息.详细的 ...
- 20210823 数数,数树,鼠树,ckw的树
考场 乍一看都不好做 仔细想想发现 T1 的绝对值特别好,轮流选剩余的最大/最小值就行了 T2 又要计数,直接想部分分,发现一个 sb 容斥就有 35ps(但数据锅了,只有 25pts) T3 什么玩 ...
- CentOS 安装制定版本docker
# 1) 配置镜像仓库 curl -o /etc/yum.repos.d/Docker-ce-Ali.repo https://mirrors.aliyun.com/docker-ce/linux/c ...