Spring @RequestBody Mapping 将所有属性映射到来自干净 camelCase POST Postman 请求的空值
Posted
技术标签:
【中文标题】Spring @RequestBody Mapping 将所有属性映射到来自干净 camelCase POST Postman 请求的空值【英文标题】:Spring @RequestBody Mapping maps all attributes to null values from clean camelCase POST Postman request 【发布时间】:2022-01-21 12:27:51 【问题描述】:我有一个用 Spring 制作的后端。 在我的一个控制器中,我有一个 POST 请求,它从已实现的 DTO 接收数据。 我在 Lombok 中使用 @Data 注释,问题不是来自这里......因为我也尝试了它,但它也不起作用。 当我使用用 camelCase 格式化的干净 Json 从 Postman 发送 POST 请求时,我的控制器从我的 DTO 收到“空”数据......我不明白为什么。 你能提供建议或帮助吗? 谢谢
我的 DTO
import lombok.Data;
@Data
public class TransactionSendPaymentToSomeOneDto
private String connectionEmail;
private String connectionFirstname;
private String connectionLastname;
private String connectionIban;
private String descriptionTransaction;
private Double amountSendMoneyValue;
我的控制器
@Slf4j
@RestController
@CrossOrigin("http://localhost:4200")
@RequestMapping("/transactions")
public class TransactionController
@Autowired
private TransactionService transactionService;
@PostMapping("/idUserSessionEnv/payment")
public ResponseEntity<Transaction> sendPaymentToSomeone(@PathVariable("idUserSessionEnv") Long idUserSessionEnv, @RequestBody TransactionSendPaymentToSomeOneDto selectedSendMoneyValue)
try
log.info("RECEIVING DATA FROM FRONT-END: ID USER = "+idUserSessionEnv +" IBAN = " + selectedSendMoneyValue.getConnectionIban() + " AMOUNT TRANSACTION = "+ selectedSendMoneyValue.getAmountSendMoneyValue());
return ResponseEntity.ok(transactionService.sendPaymentToSomeone(idUserSessionEnv, selectedSendMoneyValue));
catch (NoSuchElementException nse)
return ResponseEntity.noContent().build();
【问题讨论】:
【参考方案1】:您是否尝试在 @PostMapping("/idUserSessionEnv/payment") 下方添加 @ResponseBody?
【讨论】:
使用@ResponseBody 也不起作用 正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center。【参考方案2】:您发送了错误的有效载荷。
正确的有效载荷如下所示:
"connectionEmail":"axel@axel.com",
"connectionFirstname":"Axel",
"connectionLastname":"Vega",
"connectionIban":"2222",
"amountSendMoneyValue":999,
"descriptionTransaction":"Essai de transaction"
【讨论】:
谢谢,现在可以使用了...以上是关于Spring @RequestBody Mapping 将所有属性映射到来自干净 camelCase POST Postman 请求的空值的主要内容,如果未能解决你的问题,请参考以下文章
使用 Spring MockMVC 测试 Spring 的 @RequestBody
Spring中的@RequestBody和@ResponseBody注解
关于Spring @RequestBody 自动映射模型原理
Ajax JQuery 到 Spring @RequestBody?我如何传递数据?
转-Spring 注解学习手札 补遗——@ResponseBody,@RequestBody,@PathVariable