Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html th:每个循环都不工作_Html_Spring_Jpa_Thymeleaf - Fatal编程技术网

Html th:每个循环都不工作

Html th:每个循环都不工作,html,spring,jpa,thymeleaf,Html,Spring,Jpa,Thymeleaf,我对th:每个都有问题。它不会循环。我尝试了很长一段时间来修复它,我搜索了很多有相同问题的主题,但仍然不起作用。所以我在这里询问如何修复它的信息 网页上的列表(第一个和第二个)中没有显示任何内容,因此我认为这是错误的 <ul th:each="author : ${book.authors}"> }要显示书籍的属性(如getAuthorsN()),您应该遍历书籍列表,而不是作者,例如: <ul th:each="book : ${author.books}">

我对th:每个都有问题。它不会循环。我尝试了很长一段时间来修复它,我搜索了很多有相同问题的主题,但仍然不起作用。所以我在这里询问如何修复它的信息

网页上的列表(第一个和第二个)中没有显示任何内容,因此我认为这是错误的

<ul th:each="author : ${book.authors}">

}

要显示
书籍的属性(如
getAuthorsN()
),您应该遍历
书籍
列表,而不是
作者
,例如:

<ul th:each="book : ${author.books}">
    <li>First</li>
    <li>Second</li>
    <li th:text="${book.getAuthorsN()}">Author</li>
</ul>

阅读有关的更多信息。

调试告诉您什么?是否正确地从数据库检索数据?查看了JPA提供商的日志?好的,调试告诉我mappedBy引用了未知的目标实体属性,因此我将@ManyToMany(mappedBy=“authors”)更改为@ManyToMany(mappedBy=“books”),但仍然不起作用,调试现在不显示任何错误。控制器补充道:“请检查控制器。”
@ManyToMany
    @JoinTable(name = "author_books",
            joinColumns = @JoinColumn(name = "book_id"),
            inverseJoinColumns = @JoinColumn(name= "author_id"))
    private Set<Book> books = new HashSet<>();
<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";
}
<ul th:each="book : ${author.books}">
    <li>First</li>
    <li>Second</li>
    <li th:text="${book.getAuthorsN()}">Author</li>
</ul>
@JoinTable(name = "author_books",
        joinColumns = @JoinColumn(name = "author_id"),
        inverseJoinColumns = @JoinColumn(name= "book_id"))