Spring @RequestBody Mapping 将所有属性映射到干净的驼峰式 POST Postman 请求中的空值
Spring @RequestBody Mapping maps all attributes to null values from clean camelCase POST Postman request
我有一个用 Spring 制作的后端。
在我的一个控制器中,我有一个 POST 请求,它从已实现的 DTO 接收数据。
我在 Lombok 中使用了 @Data 注释,问题不在于此……因为我也尝试过不使用它,但它也不起作用。
当我从 Postman 发送一个 POST 请求并使用 camelCase 格式的干净 Json 时,我的控制器从我的 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();
}
}
您是否尝试在@PostMapping("/{adUser SessionEnv}/payment") 下面添加 @ResponseBody?
您发送了错误的负载。
正确的有效载荷如下所示:
{
"connectionEmail":"axel@axel.com",
"connectionFirstname":"Axel",
"connectionLastname":"Vega",
"connectionIban":"2222",
"amountSendMoneyValue":999,
"descriptionTransaction":"Essai de transaction"
}
我有一个用 Spring 制作的后端。 在我的一个控制器中,我有一个 POST 请求,它从已实现的 DTO 接收数据。 我在 Lombok 中使用了 @Data 注释,问题不在于此……因为我也尝试过不使用它,但它也不起作用。 当我从 Postman 发送一个 POST 请求并使用 camelCase 格式的干净 Json 时,我的控制器从我的 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();
}
}
您是否尝试在@PostMapping("/{adUser SessionEnv}/payment") 下面添加 @ResponseBody?
您发送了错误的负载。
正确的有效载荷如下所示:
{
"connectionEmail":"axel@axel.com",
"connectionFirstname":"Axel",
"connectionLastname":"Vega",
"connectionIban":"2222",
"amountSendMoneyValue":999,
"descriptionTransaction":"Essai de transaction"
}