如何正确组合@PathParams和@RequestBody?

时间:2018-12-18 13:41:25

标签: java spring-mvc spring-boot

在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之外,我还没有找到一种将@RequestBodyaccountId正确组合的方法吗? (我无法更改输入的参数,因为这些是预定义的要求。)

在同一对象中是否有将@PathParams@ResponseBody组合在一起的正确方法?是否无需分别在DTO中映射路径参数?

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

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

谢谢,汤姆

1 个答案:

答案 0 :(得分:1)

这里的问题是您使用GET方法。如果要让Spring使用requestBody,则要使用POST方法。使用GET方法,将忽略主体。

请参阅: