SSM框架实现评论区折叠问题,jsp代码实现
时间: 2023-12-21 11:59:20 浏览: 29
以下是一个简单的实现评论区折叠功能的 JSP 代码示例:
```jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>评论区</title>
<style>
.comment {
border: 1px solid #ccc;
margin: 10px;
padding: 10px;
}
.comment .content {
margin-bottom: 10px;
}
.comment .reply {
margin-left: 20px;
display: none;
}
.comment .show-reply {
cursor: pointer;
color: blue;
}
</style>
</head>
<body>
<h1>评论区</h1>
<%
// 模拟从数据库中查询评论数据,并将结果存入 comments 变量中
List<Comment> comments = new ArrayList<>();
comments.add(new Comment(1, "张三", "这篇文章很好!", new ArrayList<>()));
comments.add(new Comment(2, "李四", "我也觉得不错。", new ArrayList<>()));
comments.add(new Comment(3, "王五", "我有一些疑问,希望能得到解答。", new ArrayList<>()));
comments.get(0).getReplies().add(new Comment(4, "赵六", "同感!", new ArrayList<>()));
comments.get(0).getReplies().add(new Comment(5, "钱七", "顶一个!", new ArrayList<>()));
%>
<%
// 遍历评论列表,生成 HTML 代码
for (Comment comment : comments) {
%>
<div class="comment">
<div class="content">
<strong><%= comment.getAuthor() %></strong>:<%= comment.getContent() %>
</div>
<%-- 折叠回复列表的按钮 --%>
<% if (!comment.getReplies().isEmpty()) { %>
<div class="show-reply" onclick="toggleReply(this)">查看回复(<%= comment.getReplies().size() %>)</div>
<% } %>
<%-- 回复列表 --%>
<div class="reply">
<%-- 遍历回复列表,生成 HTML 代码 --%>
<% for (Comment reply : comment.getReplies()) { %>
<div class="content">
<strong><%= reply.getAuthor() %></strong>:<%= reply.getContent() %>
</div>
<% } %>
</div>
</div>
<%
}
%>
<script>
function toggleReply(button) {
var replyDiv = button.parentNode.querySelector('.reply');
if (replyDiv.style.display === 'none') {
replyDiv.style.display = 'block';
button.innerText = '收起回复';
} else {
replyDiv.style.display = 'none';
button.innerText = '查看回复(' + replyDiv.children.length + ')';
}
}
</script>
</body>
</html>
```
在这个示例中,我们使用了一个名为 `Comment` 的类来表示一个评论,其中包含了评论的作者、内容以及回复列表。在 JSP 页面中,我们模拟了从数据库中查询到的评论数据,并通过遍历评论列表生成了 HTML 代码。对于每个评论,我们添加了一个“查看回复”的按钮,点击后可以折叠或展开回复列表。在 JavaScript 中,我们定义了一个 `toggleReply` 函数来实现这个功能,它会根据回复列表的显示状态来切换按钮的文本和回复列表的显示状态。