当前位置: 首页 > 知识库问答 >
问题:

如何一起使用@RequestBody和@RequestParam

谷翰飞
2023-03-14

我尝试使用@requestbody@requestparam通过Postman发送JSON和多个文件,但它不起作用。有可能在API中同时使用这两个注释吗?

@RequestMapping(value = "/save/product/test", method = RequestMethod.POST)
public ResponseEntity<?> save(@Valid @RequestBody ProductVo productVo, @RequestParam("files") @NotNull @NotBlank MultipartFile[] uploadfiles) {

    System.out.println("body " + productVo.toString());
    for (MultipartFile file :  uploadfiles) {
        System.out.println(file.getOriginalFilename());
        System.out.println(file.getContentType());
        System.out.println(file.getName());
        System.out.println(file.getSize());

    }
    return new ResponseEntity<APIResponse>(this.apiResponse, HttpStatus.NO_CONTENT);
}

共有1个答案

柳德义
2023-03-14

@RequestParam从uri中获取参数,实际上是在尝试实现其他功能。

下面是一个示例控制器,使用json主体和多部分文件:

@RestController
@RequestMapping("/users")
public class UserController {

    UserService userService;

    @Autowired
    public UserController(UserService userService) {
        this.userService = userService;
    }

    @PostMapping({"/", ""})
    public ResponseEntity<User> post(@RequestPart("request") UserCreateRequest request, @RequestPart("file") MultipartFile file) throws IOException {

        String photoPath = UUID.randomUUID() + file.getOriginalFilename().replaceAll(" ", "").trim();

        // other logic

        return ResponseEntity.ok(userService.create(request));
    }
}
 类似资料:
  • 如何编写angular服务方法参数来调用restful webservice Spring MVC,其签名中包含@RequestBody和@RequestParam。 Java代码: 角服务方法: 如果你帮助我,我将不胜感激。祝您愉快!

  • 我正在Spring-Boot中实现微服务。我尝试将@RequestBody与一个MultipartFile一起发送。我在stackoverflow中引用了一些问题,但没有任何帮助。 视频类 方法 我只是试着用@requestpart,并附上我如何请求的屏幕截图 错误为

  • 问题内容: 我不明白JUnit 4.8如何与Hamcrest匹配器一起工作。有内部定义了一些匹配器在。同时,也有一些 其他 的匹配器中。那么,去哪儿呢?我是否应该在项目中明确包含hamcrest JAR并忽略JUnit提供的匹配器? 特别是,我对匹配器感兴趣,并且在任何这些jar中都找不到。我还需要其他东西吗?:) 还有一个哲学问题:为什么JUnit将包包含在自己的发行版中而不是鼓励我们使用原始的

  • 当用户单击LoginFragment上的一个按钮时,我将打开另一个名为forgetpassword的片段。这是一个webview,url正在从远程服务器加载。而html中的文本字段是通过软键盘隐藏的。所以我尝试使用adjustResize,它工作得很好。但是loginfragment中的editText小部件被键盘隐藏了。 如何在我的活动中实现两个标志。请帮帮我。

  • 有一个Java spring MVC web应用程序,我正在发出一个jquery ajax post请求。我的控制器设置为接收和发送json数据。一切正常,JSON字符串格式良好,控制器可以创建和填充命令对象,并用JSON请求数据的内容填充它。然而,我正在更新联系人对象的数据,我的JSP表单元素只包含DB更新所需的所有数据的子集。在带有表单的JSP页面的初始GET请求中,我从DB中检索所有必要的数

  • 问题内容: 我正在尝试使SystemJS与Typescript一起使用,但是它们似乎彼此冲突。 我如何利用System.js的自动加载功能而不会与Typescript上的关键字发生冲突?使用import / require可以使Typescript使用它自己的方式来加载和引用文件,尽管它转换为,但对于 是否有可能完全做到这一点,否则我将不得不等待Typescript支持ES6关键字? 问题答案: