Как использовать параметры запроса и пути в контроллере Spring Boot REST?

#spring-boot #rest #spring-restcontroller

Вопрос:

У меня есть следующий контроллер загрузки, который имеет два параметра РАЗНОГО типа: 1-это путь, по которому будет сохранен файл, и 2-сам файл. Я ищу правильное определение метода вместо 2 @Requestparam, которые выдают ошибку в STS.

 @PostMapping("/{path}/")
public String handleFileUpload(@RequestParam("path"), @RequestParam("file") MultipartFile file,
        RedirectAttributes redirectAttributes) {
    
    filesStorageService.store(file);
    redirectAttributes.addFlashAttribute("message", "You successfully uploaded "   file.getOriginalFilename()   "!");
    
    return "redirect:/";
}
 

Комментарии:

1. для пути вы можете использовать @PathVariable("path") String path в качестве параметра

Ответ №1:

Вам нужно использовать аннотацию @PathVariable для параметра path и добавить дополнительный аргумент ( String path ) для его хранения:

 @PostMapping("/{path}/")
public String handleFileUpload(
   @PathVariable("path") String path,
   @RequestParam("file") MultipartFile file,
   RedirectAttributes redirectAttributes) {
   [...]