java - 评论树,回复回复即可显示

标签 java spring spring-boot thymeleaf

我需要实现评论树,但无法获得回复工作的回复。

评论.java

...
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    private String content;

    @ManyToOne
    private Post post;

    @ManyToOne
    private Comment parent;

    @OneToMany(mappedBy = "parent")
    private List<Comment> children = new ArrayList<Comment>();
...

PostController.java

model.addAttribute("comments", commentRepository.findAllCommentsByPostIdAndParentIsNull(id));

post.html

<th:block th:each="comment : ${comments}">
<p th:text="${comment.content}">comment</p>

<th:block th:each="child : ${comment.children}">
<div class="child">
  <p th:text="${child.content}">comment</p>
</div>
</th:block>
</th:block>

评论数据库

ID | CONTENT | PARENT_ID | POST_ID
1    text1         null        1
2    text2          1          1
3    text3          2          1
4    text4         null        1

我想要的输出

text1
  text2
    text3
text4

我得到的输出

text1
 text2
text4

基本上不会显示对回复的回复。

我如何获得我想要的输出?

最佳答案

尝试以下操作

<th:block th:each="comment : ${comments}">
  <p th:text="${comment.content}">comment</p>
  <div th:fragment="f_call(comment)" 
      th:unless="${#lists.isEmpty(comment.children)}" >
      <div th:each="child : ${comment.children}" th:inline="text">
          [[${child.content}]]
          <div th:replace="this::f_call(${child})"></div>
      </div>
  </div>
</th:block>

关于java - 评论树,回复回复即可显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58438561/

相关文章:

Spring Reactor Webflux 调度器并行性

java - 如何正确测试这种定时并发处理服务呢?

java - 在Tomcat下开发GWT?

java - 鉴于参数名称在编译过程中丢失,Spring如何通过参数名称 Autowiring ?

java - spring boot 基于环境变量的自动配置

java - Spring引导MultipartFile方法

java - spring请求体将名称分配给数组/列表

java - 我什么时候需要使用Authenticator通过Javamail读取和发送电子邮件?

java - 使用命令行和命令行中的不同 xml 执行 Maven/TestNG 项目?

Java Map computeIfAbsent 问题