Pra*_*lan 13 java spring spring-mvc multipart spring-boot
我正在开发一个spring mvc应用程序,我想在我的控制器中处理多部分请求.在请求我MultiPartFile
也通过,目前我正在使用@RequestParam
文件paramaeter,方法看起来像,
@RequestMapping(method = RequestMethod.POST)
public def save(
@ModelAttribute @Valid Product product,
@RequestParam(value = "image", required = false) MultipartFile file) {
.....
}
Run Code Online (Sandbox Code Playgroud)
上面的代码在我的服务中运行良好,文件正在服务器端.现在在某处我看到,如果文件需要使用@RequestPart
注释而不是@RequestParam
.@RequestParam
用于文件有什么不对吗?或者它将来可能会导致任何错误?
Wil*_*son 12
这是无可厚非使用@RequestParam
与Multipart
文件.
@RequestParam注释还可用于将"multipart/form-data"请求的一部分与支持相同方法参数类型的方法参数相关联.主要区别在于,当method参数不是String时,@ RequestParam依赖于通过已注册的Converter或PropertyEditor进行类型转换,而@RequestPart依赖于HttpMessageConverters,并考虑请求部分的"Content-Type"标头.@RequestParam可能与名称 - 值表单字段一起使用,而@RequestPart可能与包含更复杂内容的部分(例如JSON,XML)一起使用.
这两个注释都可以使用,但是,您可以根据它们在内部解释参数的方式来选择它们。
在春天文档指出它们之间的区别很清楚:
主要的区别是,当该方法参数不是字符串,
@RequestParam
依赖于经由注册转换的类型转换或PropertyEditor
同时@RequestPart
依赖于HttpMessageConverters
考虑到请求部分的“内容类型”标头。@RequestPara
可能与名称-值表单字段@RequestPart
一起使用,而可能与包含更复杂内容的部分(例如 JSON、XML)一起使用。
归档时间: |
|
查看次数: |
13151 次 |
最近记录: |