在很多的网站上有很多不同的点赞,我不知道他们是怎么实现的,下面我来分享一下我写的点赞实现,共大家参考下,

这是我在一个项目抽取的代码,可能有些样式会发生变化,但是功能不会影响。

网页代码:

这个是根据数据库中是否可以点赞来限制能不能点的,strlist是从java后台返回的一个请求。在这里取出点赞数和文章点赞的编号做为参数到Ajax上

class="btn btn-default btn-xs">

${strlist.dzCount}

${strlist.dzCount}

Ajax请求的Js脚本:

function praise(recordNo, praiseCount) {

$.ajax({

url: '${ctx}/country/pointPraise',

type: 'POST',

data: {

'recordNo': recordNo

},

dataType: "JSON",

success: function(d) {

if (d.success) {

var strategyPraiseNo = parseInt(praiseCount) + 1;

$('#praiseNo' + recordNo).html(strategyPraiseNo)

}

},

error: function(XMLHttpRequest, textStatus, errorThrown) {

bootbox.alert("无法连接服务器:" + textStatus);

}

});

}

Java代码:

Dao类接口层

/**

* @Title: updateDzCount

* @Description:点击赞后更改赞的数量

* @param mapNo

* @author CHENJH

* @date 2015年6月27日

*/

public void updateDzCount(HashMap mapNo);

Dao类实现层

@Override

public void updateDzCount(HashMap mapNo) {

this.update("updateDzCount", mapNo);

}

service类接口层

/**

* @Title: updateDzCount

* @Description:点击赞后更改赞的数量

* @param recordNo

* @author CHENJH

* @date 2015年6月25日

*/

public boolean updateDzCount(HashMap mapNo);

service类实现层

@Override

public boolean updateDzCount(HashMap mapNo) {

logger.info("***** BlogServiceImpl.updateDzCount() method begin*****");

boolean flag = true;

try {

blogDao.updateDzCount(mapNo);

} catch (Exception e) {

logger.error("------updateDzCount error:", e);

e.printStackTrace();

return false;

}

logger.info("***** BlogServiceImpl.updateDzCount() method end*****");

return flag;

}

Action类处理层代码

/**

* @Title: pointPraise

* @Description: 修改文章点赞

* @author CHENJH

* @date 2015年6月27日

*/

@SkipCheck

@Action("pointPraise")

public void pointPraise() {

String recordNo = getParam("recordNo");// 获取文章信息编号

HashMap mapNo = getSessionValue("recordNoMap");// 得到文章点赞集合

Boolean bool = false;

if (mapNo != null) {

if (mapNo.get(recordNo) == null) {// 判断集合中是否存在改编号点赞

mapNo.put(recordNo, recordNo);

bool = true;

}

} else {// 未进行点赞

mapNo = new HashMap();

mapNo.put(recordNo, recordNo);

setSessionAttr("recordNoMap", mapNo);

bool = true;

}

if (bool) {// 可以点赞

mapNo.put("recordNo", recordNo);

// 点赞更新值

bool = blogService.updateDzCount(mapNo);

}

outputJsons("success", bool);

}

MyBatis3映射文件SQL语句

update TAB_攻略表 set

点赞次数=((select 点赞次数 from TAB_攻略表 where 记录编号 = #{recordNo,jdbcType=VARCHAR})+1)

where 记录编号 = #{recordNo,jdbcType=VARCHAR}

注:项目采用Maven开发,

this.update("updateDzCount", mapNo);

上采用了封装的。

java ajax 点赞功能_Ajax+jQuery+bootstrap+Java实现异步点赞功能,并限制点击次数相关推荐

  1. java ajax实现分页代码,jQuery实现分页功能(含ajax请求、后台数据、附完整demo)...

    需求分析 1)需要首页,末页功能 2)有点击查看上一页,下一页功能 3)页码到当前可视页码最后一页刷新页面 实现思路 也是分为三部分处理 1)点击首页,末页直接显示第一页或者最后一页内容,当前页面为第 ...

  2. java ajax轮询_ajax轮询(ajax轮询实现聊天)

    最近一直在研究ajax长轮询连实现即时通信,但是到底是个怎么轮询法?难道. 一般最原始的作法就是在客户端搞个定时器一直向后台请求,而ajax的长轮询与一般的http连接不一样,它发送的是长连接,比如说 ...

  3. java ajax 更改头像_ajax+node实现头像更改

    好久没有更新博客了,这几天在写文件上传的时候遇到了一个新的问题,就是关于ajax实现文件上传的问题 这几天在做一个小的demo,类似于论坛的一个东西,基于jquery+express+mongo的一个 ...

  4. java ajax 登陆验证_AJAX+JAVA用户登陆注册验证

    需求 通过ajax异步刷新页面验证用户输入的账号密码是否在数据库中存在. 技术栈 JSP+Servlet+Oracle 具体代码 JSP部分: pageEncoding="UTF-8&quo ...

  5. java ajax轮询_ajax轮询

    http://blog.csdn.net/qq_23412263/article/details/70260057 原理 普通的jquery ajax轮询的原理主要是,客户端通过定时器定时发送ajax ...

  6. java ajax 定时刷新_Ajax实现定时刷新页面

    XML Schema命名空间解析 URI Web中汇集了各种资源.资源可以是具有标识的任何事物, 如文档. 文件. 菜单项. 计算机. 服务等, 甚至可以包括人. 组织和概念[BernersLee ...

  7. 如何解决ajax跨域java,ajax跨域问题,从java角度解决

    前言 今天给小伙伴开放一个接口方便调试数据,但是老是出现CROS策略阻塞,查询资料后知道了是ajax跨域引起的,以此记录此次解决问题的过程. 什么是ajax跨域 ajax跨域的原理 ajax出现请求跨 ...

  8. ajax 实现关键字搜索,jQuery实现搜索页面关键字的功能

    在一篇文章中查找关键字,找到后高亮显示. 具体代码: Search p { border:1px solid black;width:500px;padding:5px;} .highlight { ...

  9. html5点赞按钮特效,jquery仿直播app按钮点赞动画效果

    特效描述:直播app按钮 按钮点赞动画 点赞动画效果.仿照直播软件制作的飘赞效果,jquery点赞动画效果. 代码结构 1. 引入JS 2. HTML代码 $(function () { $(&quo ...

最新文章

  1. 一次有意义的51CTO沙龙归来
  2. Spring Cloud【Finchley】-03将微服务注册到Eureka Server上 + 为Eureka Server添加用户认证
  3. windows10下安装opencv3.2+QT Creator+MingGW
  4. array sort - 4 : merge sort
  5. 第1篇:Flowable简介
  6. VM安装虚拟机及其破解密码
  7. thinkphp自动验证分析
  8. 在pycharm运行正常,在命令行窗口出现引包错误
  9. iOS 14.7 中的所有新功能
  10. c# log4net
  11. 没有人更比他懂基金业务:博格和他的先锋集团创业史(4):
  12. linux打开文件程序,linux – 获取打开特定文件的应用程序列表
  13. 江苏省计算机等级考试注意事项,江苏省淮安市2020上半年计算机等级考试注意事项...
  14. Google广告数据分析与优化总结
  15. 计算机函数sumif怎么用,怎么用sumif函数求和
  16. flink集成springboot案例_集成-Apache Flink+Spring Boot
  17. Windows中texstudio的主题代码(持续更新)
  18. mysql 查询重复字符串_如何在mysql中查询重复的字符串条目
  19. 乖 == 孝顺 ?
  20. 泛型一般有三种使用方式

热门文章

  1. Qt for Android调用Android接口将程序移到后台/前台运行
  2. 强化学习note2——value iteration和policy iteration的区别,MC和TD的区别
  3. 详解JVM内存结构(基于JDK8)
  4. aspx mysql类_aspx中的mysql操作类sqldatasource使用示例分享
  5. JQuery: 实现筛选功能
  6. 算法练习day7——190325(比较器、不基于比较的排序、maxGap、数组实现栈和队列、minStack)
  7. 算法练习day2——190319(大顶堆、冒泡、选择、插入)
  8. 通过TCP调试助手传输数据时的注意事项
  9. 启明云端分享| 继ESP32-S3点屏480*480分辨率的2.1寸屏后,目前在8ms平台又发布了480*480分辨率的4寸屏、480*272分辨率的4.3寸屏、800*480分辨率的4.3寸屏SDK
  10. ESP8266 如何修改默认上电校准方式?另外为什么 ESP8266 进⼊启动模式(2,7)并触发看⻔狗复位?