1.有控制器的json列表和我所使用的数据
[
  {
    "id" : 1,
    "cardname" : "visa gold",
    "cardnumber": "1254***548**54",
    "status" : true,
    "opposed" : false,
    "issueDate" : "21-06-2021",
    "cardbalance" : 200000,
    "validitydate" : "25-06-2021",
    "experationdate" : "30-06-2023",
    "onlinepayment" : true,
    "contactless" : true,
    "withdrawal" : false,
    "ceiling" : [{
      "maxValue" : 10000,
      "minValue" : 500,
      "value" : 100000,
      "currency" : "MAD",
      "type" : "paiment"
    }]2.这是我的code控制器代码。
    @PutMapping("/update/{id}")
    public Ceiling update(@RequestParam Integer id, Card card){
        ParameterizedTypeReference<List<Card>> responseType = new ParameterizedTypeReference<List<Card>>() {};
        ResponseEntity<List<Card>> resp = restTemplate.exchange(GET_CARD, HttpMethod.GET, resp, responseType);
        List<Card> list = resp.getBody();
        return ;
    }问题是put不能工作列表上限中的值,他们给出了错误:不存在已解决的org.springframework.web.bind.MissingServletRequestParameterException:必需的整数参数'id‘
发布于 2021-07-01 15:27:18
错误信息,
不存在org.springframework.web.bind.MissingServletRequestParameterException:解析的
必需的整数参数'id‘
它表示id请求参数在URL中不存在。
如果将id作为请求参数传递,则URL应该类似于/update?id=12345,控制器方法应该定义如下:
@PutMapping("/update")
public Card update(@RequestParam(value="id") Integer id, Card card){
    RestTemplate restTemplate = new RestTemplate();
    HttpEntity<Card> request = new HttpEntity<>(card);
    ResponseEntity<Card> response = restTemplate.exchange(GET_CARD, HttpMethod.GET, request, Card.class);
    return response.getBody(); 
}注意:您没有提到任何关于Card和Ceiling实体之间关系的信息。因此,假设GET_CARD端点正在更新我们正在传递的REST调用的card,并使用响应返回更新的Card,我已经修改了上面的方法主体。
如果您需要将id作为路径变量发送,那么URL应该类似于update/{id},控制器方法应该是,
@PutMapping("/update/{id}")
public Card update(@PathVariable("id") Integer id, Card card){
    
    RestTemplate restTemplate = new RestTemplate();
    HttpEntity<Card> request = new HttpEntity<>(card);
    ResponseEntity<Card> response = restTemplate.exchange(GET_CARD, HttpMethod.GET, request, Card.class);
    return response.getBody(); 
}发布于 2021-07-01 14:27:23
您的card对象作为一个参数,它包含json对象的响应。可以使用card对象更新值。
https://stackoverflow.com/questions/68211862
复制相似问题