我正在嘗試測驗我@PostMapping的@RestController. 該控制器如下所示:
@RestController
public class MyTestController
{
private static final Logger logger = LogManager.getLogger();
@PostMapping(path = "/foo")
public String add(@Valid Boo boo, HttpServletRequest request)
{
if (LoadManager.insert(request.getRemoteAddr()) < 3)
try
{
BooManager.persist(boo);
return "1";
}
catch (Exception e)
{
logger.error(ExceptionUtils.getStackTrace(e));
}
return "0";
}
}
但是boo,當我發出發布請求并在該 add 方法中除錯期間查看 boo 物件時,欄位全部為空。
請求正文:
{
"officialName" : "test",
"phone" : "test",
"email" : "test",
"churchArea" : "test",
"deanery" : "test",
"town" : "test",
"pass" : "test152S56"
}
請求標頭Content-Type設定為application/json
噓類:
@Data
public class Boo
{
@Size(max = 1000)
@NotBlank
private String officialName;
@Size(max = 100)
@NotBlank
private String phone;
@Size(max = 100)
@NotBlank
private String email;
@Size(max = 100)
@NotBlank
private String churchArea;
@Size(max = 100)
@NotBlank
private String deanery;
@Size(max = 100)
@NotBlank
private String town;
@Size(max = 1000)
@NotBlank
private String pass;
}
@Data 注釋來自lombok,它為該類生成公共 getter 和 setter 等。
uj5u.com熱心網友回復:
當您需要將請求正文系結到方法引數時,您應該使用 @RequestBody 注釋。這就是為什么您的 Boo 物件屬性為空的原因。
@PostMapping(path = "/foo")
public String add(@RequestBody Boo boo, HttpServletRequest request)
檔案: https ://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/web/bind/annotation/RequestBody.html
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/452751.html
下一篇:Kafka的Spring集成屬性
