在请求URL中获取相同参数名称的多个值-Spring Boot

时间:2018-09-25 16:26:54

标签: java spring spring-boot

在我的spring boot应用程序中,来自客户端的请求带有以下URL。var landsat = ee.ImageCollection(etm.merge(oli));

如何获取请求属性invoiceNo和invoiceDate的值。我知道我们在构建URL并获取它时总是可以使用一些定界符。 我想知道是否有任何springboot方式来实现这一目标。 任何帮助深表感谢。 现在,当我尝试localhost:8080/api/invoice?invoiceNo=1234&invoiceDate=050218&invoiceNo=6543&invoiceDate=060218时,我只会得到第一个参数。

3 个答案:

答案 0 :(得分:1)

使用列表

public void invoice(@RequestParam(name="invoiceNo") List<String> invoiceNos, @RequestParam(name="invoiceDate") List<String> invoiceDates) {

答案 1 :(得分:0)

@maruthi提到request.getParameterValues("invoiceNumber")是一种方式。另一种方法是添加@RequestParam(value="invoiceNo", required=false) List<String> invoiceNo作为控制器方法参数。

答案 2 :(得分:0)

在春季,您可以通过使用控制器的终结点方法内的注释@RequestParam获取查询参数,

@GetMapping("/invoice")
public CustomResponse getInvoiceData(
        @RequestParam(value="invoiceNo") List<Long> invoiceNoList,
        @RequestParam(value="invoiceDate", required = false) List<Date> invoiceDateList){
    ...
}

您可以在docs

中看到此批注可以获取的其他值(例如必需值,默认值等)。