【手把手】JavaWeb 入门级项目实战 -- 文章发布系统 (第十二节)

我们随便写一个什么东西,点击保存评论。

控制台成功打印出来了,这说明代码没问题。

OK,继续,接下来,我们就需要把这个信息保存到数据库里了。

在调用CommentService之前,我们先看一下要保存哪些东西。(这些信息去CommentService里面看,之前写过一个saveComment方法)

保存信息的清单:

id,user_id,content,article_id,create_time,is_delete

id自然不用多说,我们采用UUID就行了。user_id是用户ID,就是当前登录的那个人。content的话,就是评论的内容,也就是我们刚刚取到的txt。article_id是文章的id,到时候加载评论的时候,肯定就是通过这个字段来查找的。create_time是创建日期,is_delete为是否删除,我们默认给他一个0,表示不删除。

好的,这些东西确认好了,就开始写代码吧。

通过以上的分析,我们是不是还要把文章ID从前台传过来呢?好的,说干就干。

回到detail.jsp,给点击事件中的JSON对象添加一个属性,把文章ID拿到:

$(“.button”).eq(0).on(‘click’,function(){

var txt = $(‘#commenttxt’).val();

. p o s t ( " .post(" .post("{basePath}/controller/CommentController.jsp",{txt : txt , articleId : “${article.id}”},function(data){

data = data.trim();

if(data == ‘-1’){

alert(‘请先登录!’);

}

});

});

修改后的CommentController

<%@page import=“bean.User”%>

<%@page import=“bean.Comment”%>

<%@page import=“service.CommentService”%>

<%@ page language=“java” import=“java.util.*” pageEncoding=“UTF-8”%>

<%

User user = (User)session.getAttribute(“user”);

if(user==null){//代表用户没有登陆

out.print(“-1”);

return;

}

String txt = request.getParameter(“txt”).toString();

String articleId = request.getParameter(“articleId”).toString();

CommentService commentService = new CommentService();

Comment comment = new Comment();

comment.setId(UUID.randomUUID().toString());

comment.setUserId(user.getId());

comment.setArticleId(articleId);

comment.setContent(txt);

commentService.saveComment(comment);

%>

测试:

哎哟不错哦~~ 貌似木有问题。

再看看数据库。

哎呀呀,真的有了!

那么这是不是就说明,评论功能到目前都是正确的?

接下来,我们是不是还应该给用户一点反馈表示评论已经成功保存了?

我们在CommentController里面,最后再加上返回一个标志位 1 即可。

out.print(“1”);

然后前台判断,如果返回的是1,那么就提示“保存成功!”

$(“.button”).eq(0).on(‘click’,function(){

var txt = $(‘#commenttxt’).val();

. p o s t ( " .post(" .post("{basePath}/controller/CommentController.jsp",{txt : txt , articleId : “${article.id}”},function(data){

data = data.trim();

if(data == ‘-1’){

alert(‘请先登录!’);

}else if(data == ‘1’){

alert(‘保存成功!’);

}

});

});

这样不就好了吗?O(∩_∩)O~~

#2.评论加载

评论保存已经没问题了,接下来就是加载。

回到detail.jsp页面,第一步,是不是要导包啊?

<%@ page language=“java” import=“service.CommentService”%>

第二步,就是获取CommentService的实例对象。然后把我们需要的评论都查询出来。(因为之前查询文章内容的时候,已经获取到id了,所以这里不再获取)

<%

CommentService commentService = new CommentService();

List<Map<String,Object>> list = commentService.getCommentsByArticleId(id);

pageContext.setAttribute(“comments”, list);

System.out.println(list);

%>

测试,刷新一下页面,要是不起作用的话呢,就重启一下tomcat。

控制台成功打印出了信息:

[{content=OK, username=zhangsan}, {content=很不错的文章,赞一个!, username=zhangsan}]

接下来,就是如何把这些数据贴到页面上的问题了。

怎么贴呢,是不是还要循环一下?

最后

各位读者,由于本篇幅度过长,为了避免影响阅读体验,下面我就大概概括了整理了

怎么贴呢,是不是还要循环一下?

最后

各位读者,由于本篇幅度过长,为了避免影响阅读体验,下面我就大概概括了整理了

[外链图片转存中…(img-1gTULKLd-1714527725167)]

[外链图片转存中…(img-sGQmBNab-1714527725168)]

[外链图片转存中…(img-fcaTFXWx-1714527725168)]

[外链图片转存中…(img-RVKGXH0p-1714527725168)]

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

  • 25
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值