相同的端点,有和没有@RequestParam

时间:2017-08-14 19:12:21

标签: spring spring-mvc spring-boot

在Spring Boot中,可以使用和不包含@RequestParam

的相同端点

A 看起来像这样:

@GetMapping(value = "/billing-codes")
public ResponseEntity getBillingCodes(
        @AuthenticationPrincipal User loggedInUser,
        @RequestParam(name = "billingCodeId") String billingCodeId,
        @RequestParam(name = "direction") String direction,
        @RequestParam(name = "limit") String limit) {

B 看起来像这样:

@GetMapping(value = "/billing-codes")
public ResponseEntity getBillingCodes(
        @AuthenticationPrincipal User loggedInUser) {

请求看起来不同

A 请求

/billing-codes?billingCodeId=&direction=&limit

B 请求

/billing-codes

可以测试请求参数的name是否是请求的一部分?只是测试请求参数是null还是空的工作是不可行的,因为我将会有这样的情况并且仍应在 A 中进行处理。

1 个答案:

答案 0 :(得分:0)

不,您只能在同一URL中使用HTTP MethodController两个方法。您可能需要使用required = false的一种方法:

public ResponseEntity getBillingCodes(
        @AuthenticationPrincipal User loggedInUser,
        @RequestParam(name = "billingCodeId", required = false) String billingCodeId,
        @RequestParam(name = "direction"m required = false) String direction,
        @RequestParam(name = "limit", required = false) String limit) {}