博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
仿牛客社区项目3.5——显示评论(普通功能,Controller层帖子-评论-回复)
阅读量:2055 次
发布时间:2019-04-28

本文共 7344 字,大约阅读时间需要 24 分钟。

在这里插入图片描述

1、实体类:Comment

public class Comment {
private int id; private int userId; private int entityType; private int entityId; private int targetId; private String content; private int status; private Date createTime; public int getId() {
return id; } public void setId(int id) {
this.id = id; } public int getUserId() {
return userId; } public void setUserId(int userId) {
this.userId = userId; } public int getEntityType() {
return entityType; } public void setEntityType(int entityType) {
this.entityType = entityType; } public int getEntityId() {
return entityId; } public void setEntityId(int entityId) {
this.entityId = entityId; } public int getTargetId() {
return targetId; } public void setTargetId(int targetId) {
this.targetId = targetId; } public String getContent() {
return content; } public void setContent(String content) {
this.content = content; } public int getStatus() {
return status; } public void setStatus(int status) {
this.status = status; } public Date getCreateTime() {
return createTime; } public void setCreateTime(Date createTime) {
this.createTime = createTime; } @Override public String toString() {
return "Comment{" + "id=" + id + ", userId=" + userId + ", entityType=" + entityType + ", entityId=" + entityId + ", targetId=" + targetId + ", content='" + content + '\'' + ", status=" + status + ", createTime=" + createTime + '}'; }}

2、数据层

CommentMapper接口

@Mapperpublic interface CommentMapper {
List
selectCommentsByEntity(int entityType, int entityId, int offset, int limit); int selectCountByEntity(int entityType, int entityId);}

comment-mapper.xml

id, user_id, entity_type, entity_id, target_id, content, status, create_time

3、业务层

@Servicepublic class CommentService {
@Autowired private CommentMapper commentMapper; public List
findCommentsByEntity(int entityType, int entityId, int offset, int limit){
return commentMapper.selectCommentsByEntity(entityType, entityId, offset, limit); } public int findCommentCount(int entityType, int entityId){
return commentMapper.selectCountByEntity(entityType, entityId); }}

4、表现层

DiscussPostController

帖子详情页,有评论,评论中有回复
注入page, post,user,comments

@RequestMapping(path = "/detail/{discussPostId}", method = RequestMethod.GET)    public String getDiscussPost(@PathVariable("discussPostId") int discussPostId, Model model, Page page) {
// 帖子 DiscussPost post = discussPostService.findDiscussPostById(discussPostId); model.addAttribute("post", post); // 作者 User user = userService.findUserById(post.getUserId()); model.addAttribute("user", user); // 评论分页信息 page.setLimit(5); page.setPath("/discuss/detail/" + discussPostId); page.setRows(post.getCommentCount()); // 评论列表 List
commentList = commentService.findCommentsByEntity( ENTITY_TYPE_POST, post.getId(), page.getOffset(), page.getLimit()); // 评论显示vo列表 List
> commentVoList = new ArrayList<>(); if(commentList != null){
for (Comment comment : commentList) {
Map
commentVo = new HashMap<>(); commentVo.put("comment", comment);// 评论 commentVo.put("user", userService.findUserById(comment.getUserId()));// 作者 // 回复列表 List
replyList = commentService.findCommentsByEntity( ENTITY_TYPE_COMMENT, comment.getId(), 0, Integer.MAX_VALUE); // 回复显示vo列表 List
> replyVoList = new ArrayList<>(); if (replyList != null) { for (Comment reply : replyList) { Map
replyVo = new HashMap<>(); replyVo.put("reply", reply);// 回复 replyVo.put("user", userService.findUserById(reply.getUserId()));// 作者 User target = reply.getTargetId() == 0 ? null : userService.findUserById(reply.getTargetId()); // 回复目标 replyVo.put("target", target); replyVoList.add(replyVo); } } commentVo.put("replys", replyVoList); // 回复数量 int replyCount = commentService.findCommentCount(ENTITY_TYPE_COMMENT, comment.getId()); commentVo.put("replyCount", replyCount); commentVoList.add(commentVo); } } model.addAttribute("comments", commentVoList); return "/site/discuss-detail"; }

discuss-detail.html

  • 注入page,post,user,comments
备战春招,面试刷题跟他复习,一个月全搞定!
用户头像
寒江雪
发布于
2019-04-15 15:32:18
金三银四的金三已经到了,你还沉浸在过年的喜悦中吗? 如果是,那我要让你清醒一下了:目前大部分公司已经开启了内推,正式网申也将在3月份陆续开始,金三银四,春招的求职黄金时期已经来啦!!! 再不准备,作为19应届生的你可能就找不到工作了。。。作为20届实习生的你可能就找不到实习了。。。 现阶段时间紧,任务重,能做到短时间内快速提升的也就只有算法了, 那么算法要怎么复习?重点在哪里?常见笔试面试算法题型和解题思路以及最优代码是怎样的? 跟左程云老师学算法,不仅能解决以上所有问题,还能在短时间内得到最大程度的提升!!!
30条回帖
  • 用户头像
    掉脑袋切切
    1#
    这开课时间是不是有点晚啊。。。
    发布于 2019-04-15 15:32:18
    • 寒江雪:  
      Sissi 回复 寒江雪:  
      这个是直播时间哈,觉得晚的话可以直接看之前的完整录播的~
      2019-04-15 15:32:18
  • src= 网址

  • utext= 会解析html

    text=

  • each= 遍历

    th:each="cvo:${comments}"th:each="rvo:${cvo.replys}"
  • if= 条件

    th:if="${rvo.target==null}"th:if="${rvo.target!=null}"
  • href= 引用

    id=

    th:href="|#huifu-${rvoStat.count}|"th:id="|huifu-${rvoStat.count}|"
    th:utext="${post.title}"th:src="${user.headerUrl}"th:utext="${user.username}"th:text="${#dates.format(post.createTime,'yyyy-MM-dd HH:mm:ss')}"th:text="${post.commentCount}"th:utext="${post.content}"th:each="cvo:${comments}"th:src="${cvo.user.headerUrl}"th:utext="cvo.user.username"th:text="${page.offset + cvoStat.count}"th:utext="${cvo.comment.content}"th:text="${#dates.format(cvo.comment.createTime,'yyyy-MM-dd HH:mm:ss')}"th:text="${cvo.replyCount}"th:each="rvo:${cvo.replys}"th:if="${rvo.target==null}"th:utext="${rvo.user.username}"th:utext="${rvo.target.username}"th:utext="${rvo.reply.content}"th:text="${#dates.format(rvo.reply.createTime,'yyyy-MM-dd HH:mm:ss')}"th:href="|#huifu-${rvoStat.count}|"th:id="|huifu-${rvoStat.count}|"

转载地址:http://isnlf.baihongyu.com/

你可能感兴趣的文章
使用Maven构建的简单的单模块SSM项目
查看>>
Intellij IDEA使用(十四)—— 在IDEA中创建包(package)的问题
查看>>
Redis学习笔记(四)—— redis的常用命令和五大数据类型的简单使用
查看>>
JavaWeb高级编程(五)—— 使用会话来维持HTTP状态
查看>>
Intellij IDEA使用(十五)—— 如何在IDEA中一个Tomcat启动多个项目和多个Tomcat启动多个项目
查看>>
图解HTTP(五)—— 与HTTP协作的Web服务器
查看>>
程序员的数学(五)—— 排列组合,解决计数问题的方法
查看>>
前后端分离实践(四)—— 使用vue-cli搭建前端展示层并用mock模拟测试数据
查看>>
前后端分离实践(六)—— 前端与后端在生产环境中的分离部署
查看>>
启航 —— 记 —— 第二次自考的反思:自考与自我改造的困境
查看>>
数据结构与算法(三)——线性表
查看>>
Java8学习笔记(一)—— 函数式编程的四个基本接口
查看>>
Java8学习笔记(二)—— Lambda表达式
查看>>
Java8学习笔记(三)—— Optional类的使用
查看>>
Java8学习笔记(四) —— Stream流式编程
查看>>
Java8学习笔记(五)—— 方法引用(::双冒号操作符)
查看>>
数据结构与算法(四)—— 栈与队列
查看>>
数据结构与算法(五)—— 广义表
查看>>
微服务简介
查看>>
CAP定理
查看>>