当前位置: 首页 > 面试题库 >

将@RequestParam用于multipartfile是正确的方法吗?

夏祺然
2023-03-14
问题内容

我正在开发一个Spring MVC应用程序,我想在控制器中处理多部分请求。在我MultiPartFile 也传递的请求中,当前我正在使用@RequestParam该文件来获取参数,该方法看起来像,

@RequestMapping(method = RequestMethod.POST)
public def save(
        @ModelAttribute @Valid Product product,
        @RequestParam(value = "image", required = false) MultipartFile file) {
    .....
}

上面的代码在我的服务中效果很好,并且文件在服务器端。现在我看到某处文件需要使用@RequestPart注释而不是@RequestParam@RequestParam文件使用有什么错误吗?还是将来可能导致任何类型的错误?


问题答案:

@RequestParamMultipart file一起使用没错。

@RequestParam批注还可用于将“ multipart / form-data”请求的一部分与支持相同方法参数类型的方法参数相关联。主要区别在于,当方法参数不是String时,@ RequestParam依赖于通过注册的Converter或PropertyEditor进行的类型转换,而@RequestPart依赖于HttpMessageConverters,并考虑了请求部分的“ Content-Type”标头。@RequestParam可能与名称-值表单字段一起使用,而@RequestPart可能与包含更复杂内容(例如JSON,XML)的部分一起使用。



 类似资料:
  • 我正在开发一个spring mvc应用程序,我想在我的控制器中处理多部分请求。在我传递的请求中,当前我使用获取文件参数, 上面的代码在我的服务中工作得很好,文件正在服务器端上。现在我在某个地方看到,在某些情况下,文件需要使用注释,而不是。对文件使用有什么错误吗?或者将来可能会造成任何错误?

  • 问题内容: 最近,sonatype启用了Maven Central以支持https(背景信息)。现在,我在pom.xml中添加了以下代码段,以在所有地方强制使用https: 问题: 这够了吗?还是在某个地方仍然包含http? 这是正确的做法吗?如我所读,我应该在settings.xml中执行此操作。但是,其他使用我的(开源)项目的人将不会使用安全连接。 更新资料 它看起来还不够,例如,仍然使用HT

  • 问题内容: 我能够使用三个链接来组合一个简化的完整History.js示例,以从整个页面加载内容片段,而无需更新页面和更新浏览器历史记录。 这是相关的代码段- 完整的工作示例在此处http://jsfiddle.net/PT7qx/show 我想知道这是否正确。以前的版本可以使用#url绑定到事件。我没有看到使用此最新版本将事件绑定到url的任何示例,因此我使用了.on()click事件来调用Hi

  • 我需要将一些请求参数从浏览器发送到Spring MVC控制器,然后像方法参数一样处理它们。问题是tomcat我想没有为通过的URI数据正确编码。而不是我有: 我曾经读到过这种类型的问题,这是因为tomcat没有预装URI编码。 如果你介意我有身体编码在tomcat配置web.xml,所以是的我有: 所以我很好奇我还需要设置容器配置吗?谢谢

  • 我试图添加一个带有默认值的请求参数,但是我希望默认值是登录的用户名。 我有一个方法getUsername(),它返回当前用户的名称,但我不能将注释的值设置为方法调用(或类属性)。这是我的方法: 我可以使RequestParam不是必需的,并在为null时填充它——但这感觉不是很优雅(或者说是spring风格)。还有其他方法可以做到这一点吗?

  • 问题内容: 即使在使用Java Swing一年以上之后,对我来说,它仍然像魔术一样。如何正确使用BufferStrategy,尤其是方法? 我想添加一个JFrame和一个Canvas,然后进行绘制。我还希望能够调整()画布的大小。每次我调整Canvas的大小时,似乎都会被浪费掉,或者变得毫无用处,因为在上使用并没有真正做任何事情。另外,它具有怪异的不确定性行为,我不知道如何正确同步它。 这就是我的