model.addAttribute () для каждого цикла - PullRequest
1 голос
/ 24 января 2020

Весной я только начинаю намочить ноги MVC. Я использую API внешней криптовалюты. Я пытаюсь использовать для каждого l oop, чтобы перебрать ответ JSON, чтобы вставить каждое значение в модель, используя метод addAttribute. Я только получаю последнее значение.

Контроллер:

    @RequestMapping(value = "/Tables", produces = MediaType.APPLICATION_JSON_VALUE, method = RequestMethod.GET)
    public String test(Model model) throws IOException {
        ResponseEntity<coins[]> test = getRequest();
        for (coins i : test.getBody()) {
            model.addAttribute("coins", i);
        }
        return "Tables";
    }

    public ResponseEntity<coins[]> getRequest() throws IOException {
        RestTemplate restTemplate = new RestTemplate();
        String apiUrl = "https://api.coingecko.com/api/v3/coins/list";
        HttpHeaders headers = new HttpHeaders();
        headers.setAccept(Arrays.asList(new MediaType[]{MediaType.APPLICATION_JSON}));
        headers.setContentType(MediaType.APPLICATION_JSON);
        HttpEntity<String> entity = new HttpEntity<String>(headers);
        ResponseEntity<coins[]> response = restTemplate.exchange(apiUrl, HttpMethod.GET, entity, coins[].class);
        if (response.getStatusCode() == HttpStatus.OK) {
            return response;
        } else {
            System.out.println("Error");
        }

        return response;
    }

Модель:

    @JsonProperty("id")
    public String id;
    @JsonProperty("symbol")
    public String symbol;
    @JsonProperty("name")
    public String name;

Вид:

<tr th:each="coins : ${coins}">
     <td th:text="${coins.id}"></td>
     <td th:text="${coins.symbol}"></td>
     <td th:text="${coins.name}"></td>
     <td class="text-right">
          <a href="javascript:void(0)" class="btn btn-link btn-info btn-icon btn-sm like"><i class="tim-icons icon-heart-2"></i></a>
          <a href="javascript:void(0)" class="btn btn-link btn-danger btn-icon btn-sm remove"><i class="tim-icons icon-simple-remove"></i></a>
     </td>
</tr>

введите описание изображения здесь

Есть предложения? Цени любую помощь заранее!

1 Ответ

0 голосов
/ 24 января 2020

Оказывается, мне не нужно было запускать a для каждого l oop в контроллере. Я удалил l oop и вставил test.getBody () с помощью метода addAttribute в модель, и он работал нормально.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...