Spring Boot传递评论子评论

时间:2016-07-27 02:26:07

标签: java maven model-view-controller spring-boot thymeleaf

我无法弄清楚如何将评论和子评论传递到我的页面

所以我需要传递N row_comment&还有N row_sub_comment(每个评论)

作为例子,我可以有4个评论 第一条评论有16个子评论 第2条评论,共6条评论 第3条评论,26条评论 第4条评论,附3条评论

我的java需要从数据库中提取它们并使用model.AddAttribute将它们传递出去

http://Please.Get.Me

我有三个名为" review"," comments"和" sub_comments" 到目前为止,我已使用上述方法将打印的评论打印在页面上。但是评论可能有评论,每条评论甚至可能有子评论

如何将不同数量的这些数据传递到主页 我知道这样的例子

HTML HTML PAGE HTML PAGE

@RequestMapping("/")
public String home(Model model) {

    if (content_comment_status == true)
    {
    try {
        connection = getConnection();
        stmt = connection.createStatement();

        sql =   "SELECT preview_comment_text, preview_Comment_id
                 FROM preview_comment
                 WHERE preview_id = 4;";

        rs = stmt.executeQuery(sql);
        sb = new StringBuffer();
        while (rs.next()) 
        {
            sub_preview_comment_id = rs.getString("preview_comment_id");
            preview_comment_text = rs.getString("preview_comment_text");                
                try {

                     // 
                    connection = getConnection();
                    stmt = connection.createStatement();

                    sql =   "SELECT sub_preview_comment_text,                       sub_preview_comment_id
                             FROM sub_preview_comment
                             WHERE preview_comment_id = from_outside;";

                    rs = stmt.executeQuery(sql);
                    sb = new StringBuffer();
                    while (rs.next()) { 
                        sub_comment_text = rs.getString("sub_comment_text ");
                        sub_comment_id = rs.getString("sub_comment_id");

                    }
                    stmt.close();
                    connection.close();
                }catch(Exception e) {return e.toString();}
        }
        stmt.close();
        connection.close();
    }catch(Exception e) {return e.toString();}
    }

model.addAttribute{"stuff", java_variables}
I have to pass out N comments and N sub comments somehow

return home;
}

OR

<tr th:each="comment: ${comment}">
    <td></td>
    <td th:text="${comment.comment_text}" ></td>
    <td th:text="${comment.username}" ></td>
              <table>
               and also N sub comments need to come oput,,, like in a blob where we have comments and sub commenst
               for each comment
              </table>
</tr>
</table>

1 个答案:

答案 0 :(得分:0)

我不得不考虑一下如何回答这个问题,我认为你需要深呼吸并做一些阅读。

您需要了解MVC架构模式。您正在使用C,因为您使用带有@RequestMapping注释的Spring控制器,您正在使用V,这可以通过使用Thymeleaf来证明。您正在使用M,这可以通过使用您为其分配属性的Spring Model对象来证明,但您并不像我们大多数人那样使用该模型。您应该使用Spring Data来连接和管理您的数据。其中隐含的是使用普通Java对象作为从表中放置行的位置(这些对象称为POJOentity对象)。 ORM工具处理表行和entity对象之间的映射任务。 Spring Data使用这些工具,例如Hibernate。

所以,你有一个评论entity(在评论表中放置行)和评论entity(你在评论表中放置行),包括任何对评论的评论(小组评论)。

Review将包含一系列属性,包括Comment个实体的列表。 Comment将包含子评论列表。

此时,您可以使用Thymeleaf循环遍历Review个实体列表以访问其顶级Comment实体。对于每个Comment实体,您将循环遍历子Comment。介于两者之间,你必须自己做。