【发布时间】:2018-03-17 19:06:07
【问题描述】:
我对 th:each 有疑问。它不循环。我尝试修复它很长时间,并且我搜索了许多具有相同问题的主题,但它仍然无法正常工作。所以我在这里询问如何修复它的信息。
网页上的列表(第一和第二)没有任何显示,所以我认为这是错误的
<ul th:each="author : ${book.authors}">
图书类:
@ManyToMany(mappedBy = "books")
private Set<Author> authors = new HashSet<>();
作者类别:
@ManyToMany
@JoinTable(name = "author_books",
joinColumns = @JoinColumn(name = "book_id"),
inverseJoinColumns = @JoinColumn(name= "author_id"))
private Set<Book> books = new HashSet<>();
HTML 代码:
<td>
<ul th:each="author : ${book.authors}">
<li>First</li>
<li>Second</li>
<li th:text="${book.getAuthorsN()}">Author</li>
</ul>
</td>`
=======更新=======
控制器:
@Controller
public class BooksController {
private final BookService bookService;
public BooksController(BookService bookService) {
this.bookService = bookService;
}
@RequestMapping("/books/home")
public String showBooks(Model model){
model.addAttribute("books", bookService.getBooks());
return "books/home";
}
}
【问题讨论】:
-
你的调试告诉你什么?数据是否正确地从数据库中检索?查看了 JPA 提供者的日志?
-
好的,调试告诉我 mappedBy 引用了一个未知的目标实体属性,所以我将 @ManyToMany(mappedBy = "authors") 更改为 @ManyToMany(mappedBy = "books") 但现在仍然无法工作和调试不显示任何错误
-
添加你的控制器
-
好的,控制器已添加