Der Unterschied und die Verwendung von @RequestBody und @RequestParam
Tipps vor dem Anzeigen:
In diesem Artikel ist die IDEA-Version Ultimate 2019.1, die JDK-Version 1.8.0_141 und die Tomcat-Version 9.0.12.
1. @ RequestBody
1.1 Einleitung
@RequestBody empfängt Parameter von requestBody, dh im Anforderungshauptteil.
Die Verarbeitung der von HttpEntity übergebenen Daten wird im Allgemeinen zur Verarbeitung von Daten im nicht inhaltlichen Typ verwendet: application / x-www-form-urlencoded-Codierungsformat.
1.2 Beispiel
Testklasse TestController.java
package com.example.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
/**
* 测试Controller
* @author jjy
* @date 2020-07-21
*/
@Controller
@RequestMapping("/test")
public class TestController {
/**
* 测试RequestBody
* @param jsonStr
* @return
*/
@RequestMapping("/testRequestBody")
@ResponseBody
public String testRequestBody(@RequestBody String jsonStr){
System.out.println(jsonStr);
return "success";
}
}
Verwenden Sie Postman, um einen Anforderungstest zu senden. Die Ergebnisse sind wie folgt
2. @RequestParam
2.1 Einleitung
Die von @RequestParam empfangenen Parameter stammen von requestHeader, dem Anforderungsheader.
Wird zur Verarbeitung des Inhaltstyps verwendet: Inhalt, der für application / x-www-form-urlencoded codiert ist.
@RequestParam kann drei Parameter konfigurieren:
-
erforderlich gibt an, ob es notwendig ist, der Standardwert ist true, muss.
-
defaultValue kann den Standardwert des Anforderungsparameters festlegen.
-
value ist der Parametername der empfangenden URL (entspricht dem Schlüsselwert).
2.2 Beispiele
Testklasse TestController.java
package com.example.controller;
import com.example.model.Person;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
/**
* 测试Controller
* @author jjy
* @date 2020-07-21
*/
@Controller
@RequestMapping("/test")
public class TestController {
/**
* 测试RequestParam
* @param name
* @return
*/
@RequestMapping("/testRequestParam")
@ResponseBody
public String testRequestParam(@RequestParam(name = "userName") String name){
System.out.println(name);
return "success";
}
}
Verwenden Sie Postman, um einen Anforderungstest zu senden. Die Ergebnisse sind wie folgt