java后台接受不到vue传的参数

目录

 

一、post(@RequestBody)

Controller中不支持多个@RequestBody

二、直接用get

三、post(@RequestParam 或者不加注释)

1、URLSearchParams

2、qs

3、类似get

四、重写axios 实例

vue 封装请求


一、post(@RequestBody)

请求对应 contentType: "application/json;charset=UTF-8" --- @RequestBody

Controller中不支持多个@RequestBody

      let config = {
          headers: {
            'Content-Type': 'application/json;charset=UTF-8',
          }
        }

        axios.post(this.urld, data, config).then(res => {})




//Controller.java
 需要用@requestbody

1、解决方案, 用jsonobj 或者 map 或者 实体类接收

2、@MultiRequestBody  这个可以多个,原文地址: https://blog.csdn.net/w605283073/article/details/82119284/

@Controller
@RequestMapping("/xhr/test")
public class DemoController {
 
    @RequestMapping("/demo")
    @ResponseBody
     public String multiRequestBodyDemo1(@MultiRequestBody Dog dog, @MultiRequestBody User user) {
        System.out.println(dog.toString()+user.toString());
        return dog.toString()+";"+user.toString();
    }

:

  }

二、直接用get

axios.get('/user', {
    params: {
      ID: 12345
    }
  })
  .then(function (response) {
    console.log(response);
  })
  .catch(function (error) {
    console.log(error);
  });



@RequestMapping(value = "/user")
@Transactional
public R user(@RequestParam Map<String, Object> ){
}

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java+Vue+Minio分片上中,获取到分片上预签名地址后,需要通过后台接口上分片。以下是Java+Vue代码实现的步骤: 1.前端通过axios发送请求获取分片上预签名地址,将分片文件按照预签名地址上至Minio。 2.后端接收到前端上的分片文件后,调用Minio的API将分片文件上至Minio。 3.后端需要记录每个上的分片文件的信息,包括文件名、分片编号、分片大小等信息。 4.当所有分片文件上完成后,后端需要调用Minio的API将所有分片文件合并成一个完整的文件。 以下是Java+Vue代码实现的示例: Java代码: ``` // 上分片文件 @PostMapping("/uploadChunk") public void uploadChunk(@RequestParam("file") MultipartFile file, @RequestParam("fileName") String fileName, @RequestParam("chunkNumber") Integer chunkNumber, @RequestParam("chunkSize") Integer chunkSize, @RequestParam("totalSize") Long totalSize, @RequestParam("identifier") String identifier) throws Exception { // 将分片文件上至Minio InputStream inputStream = file.getInputStream(); minioClient.putObject("bucketName", fileName + "/" + chunkNumber, inputStream, new PutObjectOptions(inputStream.available(), -1)); inputStream.close(); // 记录分片文件信息 Chunk chunk = new Chunk(); chunk.setFileName(fileName); chunk.setChunkNumber(chunkNumber); chunk.setChunkSize(chunkSize); chunk.setTotalSize(totalSize); chunk.setIdentifier(identifier); chunkService.saveChunk(chunk); } // 合并分片文件 @PostMapping("/mergeChunks") public void mergeChunks(@RequestParam("fileName") String fileName, @RequestParam("totalChunks") Integer totalChunks, @RequestParam("identifier") String identifier) throws Exception { // 获取所有分片文件的信息 List<Chunk> chunks = chunkService.getChunks(fileName, identifier); // 检查分片文件是否全部上完成 if (chunks.size() != totalChunks) { throw new Exception("分片文件未全部上完成"); } // 将所有分片文件合并成一个完整的文件 List<String> objectNames = new ArrayList<>(); for (Chunk chunk : chunks) { objectNames.add(chunk.getFileName() + "/" + chunk.getChunkNumber()); } minioClient.composeObject("bucketName", fileName, objectNames); // 删除所有分片文件 for (Chunk chunk : chunks) { minioClient.removeObject("bucketName", chunk.getFileName() + "/" + chunk.getChunkNumber()); } // 删除分片文件信息 chunkService.deleteChunks(fileName, identifier); } ``` Vue代码: ``` // 获取分片上预签名地址 async getChunkUploadUrl(file) { const response = await axios.post('/getChunkUploadUrl', { fileName: file.name, fileSize: file.size }); return response.data; } // 上分片文件 async uploadChunk(file, chunkNumber, chunkSize, totalSize, identifier, uploadUrl) { const formData = new FormData(); formData.append('file', file.slice((chunkNumber - 1) * chunkSize, chunkNumber * chunkSize)); formData.append('fileName', file.name); formData.append('chunkNumber', chunkNumber); formData.append('chunkSize', chunkSize); formData.append('totalSize', totalSize); formData.append('identifier', identifier); await axios.post(uploadUrl, formData); } // 合并分片文件 async mergeChunks(file, totalChunks, identifier) { await axios.post('/mergeChunks', { fileName: file.name, totalChunks: totalChunks, identifier: identifier }); } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值