@PostMapping具有多个RequestParams

时间:2019-09-25 09:00:16

标签: javascript spring rest spring-boot post

我有一个带post方法的spring boot rest控制器。我想将多个参数从JavaScript post方法传递给该方法。我正在传递我的post方法数据,如下所示。

    {
      productPrices: {
                     fromDate: "2019-01-01",
                     toDate: "2019-02-01",
                     purchasePrice: "100",
                     retailPrice: "200",
                     wholesalePrice: "300"
                   },
                    pricesList : JSON.stringify(dataArr)
}

我的Rest Controller就是这样。

@RestController
public class ProductRestController {

    @PostMapping("/addPrdPriceData")
    @ResponseBody
    public Map<String, Object> addToCart(@NonNull @RequestParam(name = "productPrices") ProductPrices productPrices, @RequestParam(name = "pricesList") List<ProductPrices> pricesList) {

 }
}

当我调用Post方法时,出现以下错误。

> [org.springframework.web.bind.MissingServletRequestParameterException: Required ProductPrices parameter 'productPrices' is not present]

我在这里做错了什么?????

1 个答案:

答案 0 :(得分:0)

将数据作为单个实体传递时,请使用单个请求参数。

js。

 {
  "productData"
      {
        "productPrices": {
         "fromDate": "2019-01-01",
         "toDate": "2019-02-01",
         "purchasePrice": "100",
         "retailPrice": "200",
         "wholesalePrice": "300"
       },
        "pricesList" : JSON.stringify(dataArr)
       }
 }

Java

public class ProductRestController {

  @PostMapping("/addPrdPriceData")
  @ResponseBody
  public Map<String, Object> addToCart(@NonNull @RequestBody
  ProductData productData) {

  }
  }