SpringBoot – @RequestParam in GET- und PUST-Anfragen

GET-Anfrage

 @GetMapping("/list")
    public ResultVO<List<ProjectVO>> queryProjectListByName(@Validated  String  projectName){
    
    
          return 1;
    }
@PostMapping("/quit")
    public ResultVO<String> quitProjectById(@Validated @RequestParam  Long  projectId){
    
    
        return 1;
    }

Warum muss einer @RequestParam hinzufügen, um einen Wert zu erhalten, und der andere muss @RequestParam nicht hinzufügen, um einen Wert zu erhalten?
In Spring Boot werden bei der Verarbeitung von GET-Anforderungen die Anforderungsparameter normalerweise automatisch analysiert und den formalen Parametern der Methode zugeordnet, sodass keine Notwendigkeit besteht, die Annotation @RequestParam zu verwenden, um den Namen des Anforderungsparameters explizit anzugeben. Dies ist die erstes Beispiel in der Situation. Bei der Verarbeitung einer POST-Anfrage sind die Anfrageparameter jedoch normalerweise im Anfragetext enthalten und werden nicht automatisch wie eine GET-Anfrage geparst. Daher müssen Sie die Annotation @RequestParam verwenden, um Spring Boot über den Namen des Anfrageparameters zu informieren.

Daher wird im ersten Beispiel der Parameter projectName automatisch analysiert und den formalen Parametern der Methode zugeordnet, und es ist nicht erforderlich, den Parameternamen explizit mit @RequestParam anzugeben. Im zweiten Beispiel ist projectId der Anforderungsparameter der POST-Anfrage, der durch die Übergabe von Parametern im Anforderungstext implementiert wird. Daher muss der Name des Anforderungsparameters explizit über die Annotation @RequestParam als projectId angegeben werden.

Guess you like

Origin blog.csdn.net/l_010/article/details/131204058