首页 > 解决方案 > 如何正确组合@PathParams 和@RequestBody?

问题描述

在我的 Spring MVC 控制器中,我试图将传入参数映射到一个对象。我的控制器目前看起来像这样:

@RestController("fundsConfirmationController")
@RequestMapping("/accounts/{accountId}/funds-confirmations")
public class FundsConfirmationController {

@GetMapping(
        consumes = MediaType.APPLICATION_JSON_VALUE,
        produces = MediaType.APPLICATION_JSON_VALUE
)
public ResponseEntity<?> fundsConfirmation(@PathVariable("accountId") String accountId,
                                           @RequestBody FundsConfirmationRequestDTO fundsConfirmationRequestDTO) {

    System.out.println(accountId + " " + fundsConfirmationRequestDTO);

    return null;
}

@PathVariable因此,@RequestBody除了在方法中单独设置之外,我还没有找到一种正确组合accountId的方法?(我无法更改传入参数,因为这些是预定义的要求。)

是否有适当的方法将@PathParams和组合@ResponseBody在同一个对象中?没有单独映射 DTO 中的路径参数?

任何建议如何正确解决这个问题?

如果我在错误的地方发帖或者我需要指定更多详细信息,请纠正我。

在此先感谢,汤姆

标签: javaspring-mvcspring-boot

解决方案


这里的问题是您使用 GET 方法。如果您希望 Spring 使用 requestBody,您需要使用 POST 方法。使用 GET 方法会忽略正文。

看 :


推荐阅读