Я пытаюсь создать веб-страницу с использованием шаблона тимелеафа, чтобы представить таблицу заказов с полем, в котором представлен список связанных продуктов с определенным порядком.Как выполнить вложенный цикл Thymeleaf для создания таблицы, содержащей поля из двух классов таблицы JPA
Мой класс контроллера:
@Controller
public class WebPage {
@Autowired
private OrderRepository orderRepository;
@Autowired
private ProductRepository productRepository;
@RequestMapping("/test")
public String index(Model model) {
model.addAttribute("ordertable", orderRepository.findAll());
model.addAttribute("producttable", productRepository.findAll());
return "tablepage";
}
Соответствующая часть thymeleaf шаблона:
<table class="table">
<thead>
<tr>
<th>ID</th>
<th>stuff</th>
<th>Stuuff</th>
<th>stuff</th>
<th>products</th>
</tr>
</thead>
<tbody>
<tr th:each="ordertbl: ${ordertable}">
<td th:text="${ordertbl.stuffId}" />
<td th:text="${ordertbl.stuffname}" />
<td th:text="${ordertbl.stuffname}" />
<td th:text="${ordertbl.stuff}" />
<td><span th:each="producttbl: ${producttable}"> <span
th:text="${ordertbl.products}" />
</span></td>
</tr>
</tbody>
</table>
Что это делает создает таблицу заказов, но в конечном поле, в нем перечислены все продукты, содержащиеся в порядок в несколько раз зависит от количества продуктов в таблице продуктов.
Как это изменить, чтобы в поле порядка перечислялись продукты, принадлежащие каждой строке только один раз. Я знаю, что это скорее всего вложенная ошибка цикла или проблема с моим использованием метода findall()
, но я не уверен, как его исправить.
Я предпочел бы использовать таблицу вложенных продуктов, а не извлекать продукты из класса сущности jpa. Спасибо.
Показать, что у вас есть –
. все, что в них, - это геттеры и сеттеры для переменных выше, таких как 'stuffname' и создание списков для другой таблицы. например, в таблице заказов у меня есть: 'private List продукты; \t Публичный список getProducts() { \t \t возвращенные продукты; \t} ' –
john