java - model.addAttribute() 对于每个循环

标签 java json spring-boot spring-mvc thymeleaf

我刚刚开始涉足 Spring MVC。我正在使用外部加密货币 API。我尝试使用 for every 循环来迭代 JSON 响应,以使用 addAttribute 方法将每个值插入到模型中。不过我只得到最后一个值。

Controller :

    @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>

enter image description here

有什么建议吗?提前感谢任何帮助!

最佳答案

事实证明我不需要在 Controller 中为每个循环运行一个。我删除了循环并使用 addAttribute 方法将 test.getBody() 插入到模型中,并且工作正常。

关于java - model.addAttribute() 对于每个循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59901129/

相关文章:

sql - 使用 JSON_MERGPATCH 后更新 json 列

java - Java 和/或 Spring Boot 中的并发异步 HTTP 请求

java - Spring boot 2.0.5.RELEASE 与 Jersey 客户端 2.27 需要 java.naming.factory.initial

java - 加载主窗体java后进度条不关闭

java - 将列表中的所有字符串打印成单个字符串的最优雅/简洁的方法是什么?

json - 将json数组编码到客户端

c# - JSON.net 无法反序列化

java - 如何使用动态键名生成对象类型的 JSON 模式?

java - 如何获取驻留在 src/main/resources 中的 .exe 文件的路径

java - @TestConfiguration 在顶级类上的目的是什么?