2017-12-03 224 views
0

我想在春季啓動時通過POST方法發送參數,但參數全部爲空。如何在春季開機時通過POST方法發送參數?

@RequestMapping(value = "/upload", method = RequestMethod.POST) 
public String upload(@RequestParam(value = "path", defaultValue = "") String path) { 
    return "hello " + path; 
} 

,當我試圖測試它這個錯誤是出現

{ 
    "timestamp": 1512262419197, 
    "status": 500, 
    "error": "Internal Server Error", 
    "exception": "org.springframework.web.bind.MissingPathVariableException", 
    "message": "Missing URI template variable 'path' for method parameter of type String", 
    "path": "/upload" 
} 
+1

你能否提供一些關於你如何提出這個請求的細節?例如,添加用於發出此請求的'cURL'命令。也可以顯示控制器類以及? – Edd

+0

你的jsp或api調用方法在哪裏? –

回答

0

獲得這一「路徑」的唯一方法變量是構造一個URL如下

..../upload?path=foo 

,如果你想要接收身體,則必須使用@RequestBody 如果要使用類似../{id}/upload的路徑變量,請使用@PathVariable

0

我認爲你需要在參數上使用數據類。其原因是POST方法不能像那樣使用。通過url調用的參數僅適用於GET方法。你需要從jquery例子中調用它。或簡單的方法,你可以使用像郵遞員這樣的工具

@RestController 
@RequestMapping(value ="/api") 
public class ApiDataController 
{ 
    @RequestMapping(value = "/upload", method = RequestMethod.POST) 
    public String upload(@ModelAttribute UploadForm form) 
    { 
     return "hello " + form.path; 
    } 

    public class UploadForm 
    { 
     public string path = ""; 

     public UploadForm() { 
      // TODO Auto-generated constructor stub 
     } 

     public String getPath() { 
      return path; 
     } 

     public void setPath(String path) { 
      this.path = path; 
     } 
    } 
}