#spring-boot #spring-mvc #arraylist #thymeleaf
#spring-boot #весна-mvc #список массивов #thymeleaf
Вопрос:
пожалуйста, помогите с приведенным ниже. Я пытаюсь отобразить arraylist, возвращенный контроллером, и отобразить его в Html-таблице, но я получаю приведенную выше ошибку.
вот мой код контроллера:
@GetMapping(value="/chart" )
public List<List<CanvasjsChartData.DataPointModel>> chart(Model modelMap) {
List<List<CanvasjsChartData.DataPointModel>> dataPointsList = canvasjsChartService.getCanvasjsChartData();
modelMap.addAttribute("dataPointsList", dataPointsList);
System.out.println("dataPointsList");
return dataPointsList;
}
и это таблица, в которой я хочу отобразить свой список
<table class="table" id="dataTable" style="width:100%">
<thead>
<th>Level</th>
<th>Occurences</th>
</thead>
<tbody>
<tr th:each="item :${dataPointsList}">
<td th:text="${item.LEVEL}"> </td>
<td th:text="${item.OCCURENCES}"> </td>
</tr>
</tr>
</tbody>
Я точно знаю, что в ArrayList есть необходимые мне данные, как показано ниже, я не знаю, почему он выдает мне ошибку
Ответ №1:
Ваша отладка показывает, что у вас есть List<List<CanvasjsChartData.DataPointModel>>
(два списка внутри друг друга) — когда ваш HTML ожидает List<CanvasjsChartData.DataPointModel>
. Вы должны исправить это в своем контроллере / модели, вернув только один список.
Вы также можете отобразить свой HTML следующим образом (где вы перебираете 0-й элемент внешнего массива):
<tr th:each="item :${dataPointsList[0]}">
<td th:text="${item.LEVEL}" />
<td th:text="${item.OCCURENCES}" />
</tr>