如何使用@RequestParam数组来处理多种数据类型?

问题描述 投票:0回答:1

我正在使用 @RequestParam 数组构建 Spring Boot 控制器。 问题是,输入将是请求正文中作为 FormData 的图像上传(新图像)和字符串(现有图像的 id)的混合。

如果是新图片,我必须上传图片并获取它的 id。 如果它是现有图像,我只需使用输入中的相同 id 即可。

在控制器中,我尝试使用

@RequestParam Object[] images

if (images[i] instanceof String) {
// Existing Image
} else if (images[i] instanceof MultipartFile) {
// New Image
}

如果所有项目都是图像或所有项目或字符串,则此方法有效。 但是,如果两者混合,则控制器仅捕获 MultipartFile

当我检查“网络”选项卡(浏览器)时,所有字符串和文件都已上传正常。

任何人都可以帮我捕获不同类型吗?

spring spring-boot
1个回答
0
投票

@RequestParam
用于处理简单的数据类型,可能无法处理您需要的复杂类型,例如您的情况下的图像和字符串。 您可以尝试使用
@RequestPart
代替
@RequestParam

@RequestPart("images") Object[] images

if (images[i] instanceof String) {
    // Existing Image
} else if (images[i] instanceof MultipartFile) {
    // New Image
}

这将允许您处理从客户端接收到的多种类型的数据。

© www.soinside.com 2019 - 2024. All rights reserved.