如何使用 resttemplate 更新天花板列表中的值?
How can i update the value in the list of ceiling using resttemplate?
1.there 是控制器的 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.and有我的restcontroller代码
@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' 不存在]
您将卡片对象作为参数,其中包含 json 对象的响应。您可以使用卡片对象更新值。
错误信息,
Resolved [org.springframework.web.bind.MissingServletRequestParameterException: Required Integer parameter 'id' is not present]
表示 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();
}
1.there 是控制器的 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.and有我的restcontroller代码
@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' 不存在]
您将卡片对象作为参数,其中包含 json 对象的响应。您可以使用卡片对象更新值。
错误信息,
Resolved [org.springframework.web.bind.MissingServletRequestParameterException: Required Integer parameter 'id' is not present]
表示 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();
}