【问题标题】:Setting multiple parameters in a request在一个请求中设置多个参数
【发布时间】:2021-10-05 08:12:14
【问题描述】:

我需要形成一个缓存,对于regions by id,在region_ids参数中传递,请求是这样的:

localhost:8080/cache/mscache?region_ids=5,19....,23

如何最好地读取程序代码中的这几个参数?

【问题讨论】:

    标签: java spring parameters get request


    【解决方案1】:

    读取一个字符串并将该字符串解析为您想要的任何内容:

    @GetMapping("/cache/mscache)
    public String getCache(@RequestParam String listOfRegionIds)
        List<String> ids = Arrays.stream(listOfRegiosIds.split(",")).collect(Collectors.toList);
    // ...
    }
    

    更多信息https://www.baeldung.com/spring-request-param

    【讨论】:

      【解决方案2】:

      您可以使用arrayList

          @GetMapping(value = "/test")
          public void test(@RequestParam List<String> ids) {
              ids.forEach(System.out::println);
          }
      

      发出如下请求:

      http://localhost:8080/test?ids=1,2,3

      查看here了解更多详情。

      【讨论】:

      • 这个答案比解析region_ids好。
      • @NiceBooks 我也这么认为,性能更好,工作更少:)
      【解决方案3】:

      如果请求是 Get 请求,请像 J Asgarov 建议的那样使用 @RequestParam,如果是这样,您还可以通过创建包含所有参数的类来使用 @RequestBody

      例如,一个 Post 请求可能如下所示:

      @PostMapping("...")
      public String postCache(@RequestBody RegionIdsRequest regionIds)
      // ...
      }
      
      public class RegionIdsRequest{
          List<int> regionsIds = //...
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-02-13
        • 1970-01-01
        • 1970-01-01
        • 2016-01-25
        相关资源
        最近更新 更多