我嘗試構建一個具有上傳檔案功能的 todoapp。現在我想可以上傳任務上的檔案,或者只是上傳沒有任務的檔案。為此,我需要 @PathVariable 注釋是可選的。
這是我的控制器:
@PostMapping("/upload/{taskId}")
private ResponseEntity<String> uploadFile(@CurrentUser UserPrincipal userPrincipal, @RequestParam("file") MultipartFile[] file, @PathVariable(required = false) String taskId) {
fileService.upload(userPrincipal.getUser(), file, taskId);
return new ResponseEntity<>("File uploaded", HttpStatus.OK);
}
如果我嘗試使用 TaskId 上傳它,它會起作用。但是當我嘗試在沒有 taskId 的情況下上傳它時,它不起作用。我收到錯誤:
“405 方法不允許”
截屏:

有人知道如何解決這個問題嗎?
uj5u.com熱心網友回復:
如果您想將 @PathVariable用作可選項,請務必系結兩個路徑:@PostMapping(value = {"/upload/{taskId}", "/upload"})。
如果你不張貼taskId彈簧會尋找一個控制器來處理"/upload"而不是"/upload/{taskId}"
我個人會使用RequestParam而不是PathVariable用于可選引數
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/402209.html
