Java Spring引导控制器多参数(<;列表>;和多部分文件)对象
您好,我正在寻找,如果我只能处理一个RestController方法多个参数。。。 用控制器的方法可以做到。。。但我找不到有2个这样的项目Java Spring引导控制器多参数(<;列表>;和多部分文件)对象,java,spring-boot,controller,Java,Spring Boot,Controller,您好,我正在寻找,如果我只能处理一个RestController方法多个参数。。。 用控制器的方法可以做到。。。但我找不到有2个这样的项目 @PostMapping(value ="upload") public upload(@RequestParam MultipartFile file,@RequestParam List<String> myParams ){ some code here .... return;
@PostMapping(value ="upload")
public upload(@RequestParam MultipartFile file,@RequestParam List<String> myParams ){
some code here ....
return;
}
@PostMapping(value=“upload”)
公共上载(@RequestParam MultipartFile file,@RequestParam List myParams){
这里有一些代码。。。。
返回;
}
我只是想知道这是否也是一个很好的练习。。。在同一个控制器中有两种不同类型的对象,如果可能的话,您需要指定变量的名称
@PostMapping(value ="upload")
public upload(
@RequestParam(value = "file") MultipartFile file,
@RequestParam(value = "myParams") List<String> myParams
){
some code here ....
return;
}
@PostMapping(value=“upload”)
公开上传(
@RequestParam(value=“file”)多部分文件,
@RequestParam(value=“myParams”)列出myParams
){
这里有一些代码。。。。
返回;
}
简单回答:是的,这是可能的。
但正如你所要求的良好实践,这里有一些背景:
了解HTTP实际上是如何传输数据的非常有帮助
如果您的请求使用GET作为请求方法,则参数将作为查询字符串添加到URL中。可能是这样的:http://example.com/index?param1=value1¶m2=value2
在本例中,Spring将查询字符串中的键值对映射到方法参数。但这只适用于文本
如果使用的是POST,则数据将在请求正文中发送。编码方式取决于数据的媒体类型。例如,默认的媒体类型application/x-www-form-urlencoded
将数据编码为与上面相同的查询字符串
如果要上载混合类型表单数据(如文件/blob)以及一些文本参数,则应使用多部分/表单数据
对数据进行编码
只要请求主体包含键值格式,Spring Boot仍然能够通过@RequestParam
区分和映射参数(如果键值与属性名称没有差异,您甚至不需要为值
属性指定名称)
我强烈建议您查看@RequestBody
和@RequestPart
注释,因为我认为对整个请求体(或者更确切地说是语义上的表单)使用模型类(DTO)通常是最佳做法,特别是当有许多参数需要处理时。非常有用的答案!!非常感谢。