【中软国际实习】Day 11:Spring Boot:TNews项目实现新闻评论
文章目录
- 新闻评论
- 实体类
- Controller层
- Service层
- 前端界面
- 小结
新闻评论
实体类
@Entity
@Table(name = "t_comment")
public class Comment {@Id@GeneratedValueprivate Long id;private String nickname;private String email;private String content;private String avatar;@Temporal(TemporalType.TIMESTAMP)private Date createTime;@ManyToOneprivate News news;@OneToMany(mappedBy = "parentComment")private List<Comment> replyComments = new ArrayList<>();@ManyToOneprivate Comment parentComment;private boolean adminComment;public Comment() {}public Long getId() {return id;}public void setId(Long id) {this.id = id;}public String getNickname() {return nickname;}public void setNickname(String nickname) {this.nickname = nickname;}public String getEmail() {return email;}public void setEmail(String email) {this.email = email;}public String getContent() {return content;}public void setContent(String content) {this.content = content;}public String getAvatar() {return avatar;}public void setAvatar(String avatar) {this.avatar = avatar;}public Date getCreateTime() {return createTime;}public void setCreateTime(Date createTime) {this.createTime = createTime;}public List<Comment> getReplyComments() {return replyComments;}public void setReplyComments(List<Comment> replyComments) {this.replyComments = replyComments;}public Comment getParentComment() {return parentComment;}public void setParentComment(Comment parentComment) {this.parentComment = parentComment;}public boolean isAdminComment() {return adminComment;}public void setAdminComment(boolean adminComment) {this.adminComment = adminComment;}public News getNews() {return news;}public void setNews(News news) {this.news = news;}@Overridepublic String toString() {return "Comment{" +"id=" + id +", nickname='" + nickname + '\'' +", email='" + email + '\'' +", content='" + content + '\'' +", avatar='" + avatar + '\'' +", createTime=" + createTime +", news=" + news +", replyComments=" + replyComments +", parentComment=" + parentComment +", adminComment=" + adminComment +'}';}
}
Controller层
@Controller
public class CommentController {@Autowiredprivate CommentService commentService;@PostMapping("/comments")public String save(Comment comment, HttpSession session){User user = (User)session.getAttribute("user");if(user==null){comment.setAdminComment(false);}else{comment.setAdminComment(true);}commentService.save(comment);Long newsId = comment.getNews().getId();return "redirect:/comments/"+newsId;}@RequestMapping("/comments/{newsId}")public String comments(@PathVariable Long newsId, Model model){List<Comment> comments = commentService.findCommentByNewsId(newsId);model.addAttribute("comments",comments);return "news::commentList";}
}
Service层
save()方法中:如果父评论id为-1(没有父评论),则将父评论id设为null。
通过消息的id来查找所有评论。
@Service
public class CommentServiceImpl implements CommentService {@Autowiredprivate CommentDao commentDao;@Overridepublic void save(Comment comment) {if(comment.getParentComment().getId()==-1){comment.setParentComment(null);}commentDao.save(comment);}@Overridepublic List<Comment> findCommentByNewsId(Long newsId) {Sort sort = Sort.by("createTime");List<Comment> comments = commentDao.findByNewsIdAndParentCommentNull(newsId,sort);return comments;}
}
前端界面
<div id="comment-form" class="ui form"><input type="hidden" name="news.id" th:value="${news.id}"><input type="hidden" name="parentComment.id" value="-1"><div class="field"><textarea name="content" placeholder="请输入评论信息..."></textarea></div><div class="fields"><div class="field m-mobile-wide m-margin-bottom-small"><div class="ui left icon input"><i class="user icon"></i><input type="text" name="nickname" placeholder="姓名" th:value="${session.user}!=null ? ${session.user.nickname}"></div></div><div class="field m-mobile-wide m-margin-bottom-small"><div class="ui left icon input"><i class="mail icon"></i><input type="text" name="email" placeholder="邮箱" th:value="${session.user}!=null ? ${session.user.email}"></div></div><div class="field m-margin-bottom-small m-mobile-wide"><button id="commentpost-btn" type="button" class="ui teal button m-mobile-wide"><i class="edit icon"></i>发布</button></div>
</div>
小结
新闻评论功能实现后,TNews项目的基础功能已经完成,在迭代过程中,我能够清晰地感受到Spring Boot项目相较于SSM框架的简洁与方便,代码精简,框架自动生成,为Java项目开发带来了许多便利。在迭代的过程中,我已经基本熟悉了Spring Boot框架的原理与实现,收获满满。
【中软国际实习】Day 11:Spring Boot:TNews项目实现新闻评论相关推荐
- 我的中软国际实习Day16
我的中软国际实习Day16 springcloude UserClient package com.zr.client;import com.zr.pojo.User; import org.spri ...
- 中软国际实习学习第九天
中软国际实习学习第九.十天 第九天我们实现的是新闻系统的登录的功能,以及在登录功能中间添加一个过滤器 package com.zhongruan.entity;import javax.persist ...
- 中软国际实习 day10
今天开始进行页面的设计,和其他成员讨论了数据库表的内容,建立了居民信息
- 中软国际实习 dzy15
今天是最后一天,修改了几个js的引入方式,确保运行正常
- 谴责中软国际,特么的无耻。
1,离职 =============================================================== 我7.10号向中软国际辞职.8.10号才放我离开(这个能理解) ...
- 中软国际携手深开鸿发布(1+1) x N 战略,以数字化、智慧化改变人类生产和生活方式
2022开放原子全球开源峰会于7月27-29日在北京亦创会展中心正式召开,中软国际有限公司(以下简称"中软国际").深圳开鸿数字产业发展有限公司(以下简称"深开鸿&quo ...
- 中软干两年有用吗_在中软国际的两年,是我成长最快的阶段
马上又临年关了,每年年底都是程序员最忙的时候,一个个项目接踵而来,真的是让人很抓狂了.前儿领导又安排下来一个系统开发的任务,说是客户特别着急,最好一个星期就要,可是要知道,系统开发并不是一个简简单单的 ...
- 中软国际赴黔参加大数据国际年会,规划产业布局
美国将大数据提升为国家战略,我国虽没有明确提出,但我国政府对大数据的敏感度近几年来快速提升,国家多部委已联合发布措施鼓励大数据产业发展.贵州省经济和信息化委员会主任李保芳认为,大数据已成为新时代重要的 ...
- 中软国际java面试题及参考答案
面试题是中软国际java个人求职者在面试过程中的敲门砖,以下是小编为大家收集到的,希望对大家有帮助! :填空题 1Java语言具有许多优点和特点,下列选项中,哪个反映了Java程序并行机制的特点 B ...
最新文章
- ASP.NET之父强烈推荐,无可争议的圣经级巨著
- 独家 | 手把手教你用Python构建你的第一个多标签图像分类模型(附案例)
- mysql 虚拟环境搭建_pycharm虚拟环境virtualnv安装MySQL扩展
- 2017 《Java技术预备作业》
- STM32 进阶教程 17 - ADC注入通道
- 在大数据里:Hadoop可能是你的救命稻草
- hust1344(阶层问题+暴力)
- 浅析三种特殊进程:孤儿进程,僵尸进程和守护进程
- java poi 打开 保存_Java-Apache POI-在DB中读取和存储RTF内容
- 窄脉冲matlab实现,[求助]如何获得与50Hz工频同步的窄脉冲信号
- 贪吃蛇游戏C语言源代码学习
- c语言最好的文本编辑器,【软件分享】两个小巧好用的C语言编辑器
- matlab两张图片显示,matlab怎么同时显示imshow 两幅图片
- Excel-数据透视表
- ESP32分区表图解
- python浪漫微信_教你用python做一个哄女友的微信自动回复机器人
- python验证角谷_角谷猜想-随心随性无为而为-51CTO博客
- 打印机服务器属性添加哪个文件,如何设置打印机服务器属性如何找到打印机服务器属性...
- 原始套接字编程——Teardrop
- android安装nodejs6,使用安卓手机搭建node-red