2017-12-03 11 views
0

春のブート時にPOSTメソッドでparamsを送信したいが、paramは常にnullです。春のブートでPOSTメソッドでparamを送信するには?

@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

この「パス」を受信する唯一の方法が登場したテストしようとして変数を使う場合

..../upload?path=foo 

を次のようにURLを構築することです身体を受け取りたい場合は、../{id}/uploadのようなパス変数を使用する場合は@RequestBody を使用し、次にを使用する必要があります

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; 
     } 
    } 
} 
関連する問題