2017-12-03 4 views
0

Ich möchte params per POST-Methode im Frühjahr Boot senden, aber der Parameter ist immer Null.Wie wird param per POST-Methode im Spring Boot gesendet?

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

wenn ich versuche Testen Sie dieser Fehler

erschienen war
{ 
    "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

Könnten Sie auch einige Details zur Verfügung stellen, wie Sie diese Anfrage stellen? Fügen Sie beispielsweise den Befehl 'cURL' hinzu, mit dem Sie diese Anfrage stellen. Könnte auch die Controller-Klasse angezeigt werden? – Edd

+0

Wo ist Ihre JSP oder API Anrufmethode? –

Antwort

0

Der einzige Weg, um dieses „Pfad“ Variable zu erhalten, ist eine URL zu konstruieren, wie folgende

..../upload?path=foo 

, wenn Sie Möchten Sie einen Körper erhalten, dann müssen Sie den @RequestBody verwenden, wenn Sie eine Pfadvariable wie ../{id}/upload verwenden möchten, dann verwenden Sie @PathVariable

0

Ich denke, Sie müssen Datenklasse bei dem Parameter verwenden. es ist, weil POST-Methode nicht so verwenden kann. Der Parameter Aufruf von URL funktioniert nur für GET Methode. Sie müssen es von jquery Beispiel aufrufen. oder für einfache Weise können Sie Tools wie Postman verwenden

@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; 
     } 
    } 
} 
Verwandte Themen