打开原教程视频
注:本人是渣渣,有错请谅解。

异步请求的分页查询和模糊条件查询


同步请求和异步请求的区别在实现登录功能时已经介绍过了,下图便是实现异步请求分页查询的时序图。


可以看出我们首先进行用户列表的页面跳转,再进行用户的分页查询。
首先将同步请求方式的代码注释


添加id值用于取值调用

接着在userList.jsp中编写异步请求的方法体

var datas={"currentPage" : 1,"pageCount" : 10};var loadingUsers=-1;$("#queryButton").click(function () {var queryText=$("#queryText").val();if ($.trim(queryText)==""){layer.msg("查询条件不能为空!", {time:1000, icon:5, shift:6}, function () {$("#queryText").focus();}); //弹出时间,图标,特效return;}datas.queryText=$.trim(queryText);});function queryUserList(currentPage) {datas.currentPage=currentPage;$.ajax({type : "POST",data : datas,url : "userController/userList.do",beforeSend : function() {loadingUsers = layer.msg('Loading', {icon: 16});return true;},success : function (result) {layer.close(loadingUsers);if (result.success){// alert("进行局部刷新");var page = result.page;var users= page.users;var content ='';$.each(users,function (index,user) {content+='<tr>';content+='    <td>'+(index+1)+'</td>';content+='    <td><input type="checkbox"></td>';content+='        <td>'+user.loginacct+'</td>';content+='        <td>'+user.username+'</td>';content+='        <td>'+user.email+'</td>';content+='        <td>';content+='        <button type="button" class="btn btn-success btn-xs"><i class=" glyphicon glyphicon-check"></i></button>';content+='    <button type="button" class="btn btn-primary btn-xs"><i class=" glyphicon glyphicon-pencil"></i></button>';content+='    <button type="button" class="btn btn-danger btn-xs"><i class=" glyphicon glyphicon-remove"></i></button>';content+='    </td>';content+='    </tr>';});$("tbody").html(content);var contentBar='';if (page.currentPage==1){contentBar+='<li class="disabled"><a>上一页</a> </li>';}else {contentBar+='<li ><a οnclick="pageChange('+(page.currentPage-1)+')">上一页</a> </li>';}for (var i =1 ;i <= page.pageCount;i++){contentBar+='<li ';if (page.currentPage==i){contentBar+=' class="active"';}contentBar+=' ><a οnclick="pageChange('+i+')">'+i+'</a> </li>';}if (page.currentPage==page.pageCount){contentBar+='<li class="disabled"><a>下一页</a> </li>';}else {contentBar+='<li ><a οnclick="pageChange('+(page.currentPage+1)+')">下一页</a> </li>';}$(".pagination").html(contentBar);}else {layer.msg("数据加载失败!!!", {time:1000, icon:5, shift:6}); //弹出时间,图标,特效}},error : function (result) {layer.msg(result.message, {time:1000, icon:5, shift:6}); //弹出时间,图标,特效}});}$("#queryButton").click(function () {var queryText=$("#queryText").val();datas.queryText=queryText;queryUserList(1);})

需要注意的,我们要将所有的数据封装到result对象返回界面,所以需要将包含用户等数据的page实体类添加到AjaxResult的属性中,并添加get和set方法。
前端控制器方法编写

/*** 页面跳转* @return*/@RequestMapping("/toUserList")public String toUserList(){return "user/userList";}/*** 异步请求* @param currentPage* @param currentCount* @return*/@RequestMapping(value = "/userList")public @ResponseBody Object toUserList(@RequestParam(value = "currentPage",required = false,defaultValue = "1") Integer currentPage,@RequestParam(value = "currentCount",required = false,defaultValue = "10") Integer currentCount ,String queryText){AjaxResult result = new AjaxResult();try {Map<String,Object> map =new HashMap<String, Object>();map.put("currentPage",currentPage);map.put("currentCount",currentCount);if (StringUtil.isNotEmpty(queryText)){if (queryText.contains("%")){queryText = queryText.replaceAll("%", "\\\\%");}map.put("queryText",queryText);}Page page = userService.queryUserList(map);result.setPage(page);result.setSuccess(true);} catch (Exception e) {e.printStackTrace();result.setMessage("数据加载出现异常。。。");result.setSuccess(false);}return result;}

service实现类方法,并在dao层和service层添加相应的方法名和参数

public Page queryUserList(Map<String, Object> map) {Page page = new Page((Integer) map.get("currentPage"), (Integer) map.get("currentCount"));Integer startIndex = (Integer) map.put("startIndex", page.getStartIndex());List<User> users = userMapper.queryUserList(map);page.setUsers(users);Integer totalCount = userMapper.queryUserCount(map);page.setTotalCount(totalCount);return page;}

UserMapper.xml的sql语句

  <select id="queryUserCount" resultType="int">select count(*) from t_user <where><if test="queryText!=null">loginacct like concat("%",#{queryText},"%")</if></where></select><select id="queryUserList" resultType="com.bin.crowdfunding.bean.User">select * from t_user<where><if test="queryText!=null">loginacct like concat("%",#{queryText},"%")</if></where>limit #{startIndex} ,#{currentCount}</select>

在main.jsp中修改url地址路径

启动服务器处进行测试

模糊查询测试

谢谢阅读。

众筹网站项目第四天之异步请求的分页查询和模糊条件查询(2)相关推荐

  1. 众筹网站项目第五天之用户的增、删、改

    打开原教程视频 注:本人是渣渣,有错请谅解. 增加用户 流程:点击新增按钮->跳转至用户信息填写页面->点击添加将数据保存到后台服务器并转到用户列表. 1.在userList.jsp的新增 ...

  2. 众筹网站项目第七天之zTree树形结构实现(2)

    打开原教程视频 注:本人是渣渣,有错请谅解. 许可维护页面的zTree树形结构实现 实现效果: 实现过程 1.数据准备 在数据库中插入相应的数据 insert into `t_permission` ...

  3. 众筹网站项目第七天之用户角色分配(1)

    打开原教程视频 注:本人是渣渣,有错请谅解. 实现用户角色分配功能 1.数据准备 insert into `t_role` (`id`, `name`) values('1','PM - 项目经理') ...

  4. Layui表格异步请求服务器端分页数据

    文章仅作为个人备忘,未精细整理 方法及配置参考处layui网站及相关网络资源,实现了通过Layui表格快速实现请求服务器端分页数据. 前端代码 <!DOCTYPE html> <ht ...

  5. 众筹网站项目第一天之项目环境搭建和环境测试

    打开原教程视频 注:本人是编程小白,这个是我第一个尝试的项目,编写该系列博客是为了记录第一次做项目的经历,其中肯定会有不少不成熟的操作甚至错误之处,如果可以,希望大神指出,谢谢大家. 资料准备 点击获 ...

  6. 基于JavaWeb的互联网金融创意众筹网站系统

    目 录 第1章 绪论 1 1.1 课题的背景与现状 1 1.1.1 课题的背景 1 1.1.2 课题国内外现状 1 1.2 课题的提出及意义 2 1.3 课题研究思路与环境 3 1.3.1 课题的研究 ...

  7. [附源码]计算机毕业设计JAVA创意众筹网站

    [附源码]计算机毕业设计JAVA创意众筹网站 项目运行 环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(Intell ...

  8. Spring Boot 异步请求和异步调用

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 一.Spring Boot中异步请求的使用 1.异步请求与同步请求 ...

  9. Spring Boot 异步请求和异步调用,一文搞定!

    一.Spring Boot中异步请求的使用 1.异步请求与同步请求 特点: 可以先释放容器分配给请求的线程与相关资源,减轻系统负担,释放了容器所分配线程的请求,其响应将被延后,可以在耗时处理完成(例如 ...

最新文章

  1. Unix Linux大学教程(三):过滤器、正则表达式、vi
  2. 在Windows环境下搭建Android开发环境
  3. 风靡硅谷营销界的 MarTech 魔术
  4. html中radio,checkbox值的获取、赋值、注册事件
  5. linux 运行 chom,Hadoop安装-单节点/伪分布(2.7.3)
  6. OpenCL、OpenGL 同时工作
  7. 从源码角度看ContentProvider
  8. 中心对称又是轴对称的图形_【笔记-公务员amp;事业单位】行测:图形推理
  9. Datamill 一个开源的框架
  10. Unity web player无法正常使用
  11. window10安装vnc无法使用,window10安装vnc无法使用的原因和解决办法
  12. Html+Css实现鼠标经过图片放大
  13. 计算机无线网络怎么连接打印机共享打印机,无线网络如何设置打印机共享,给详细步骤...
  14. ios 字符加密问题 字符串加密gyb字符返回空
  15. JavaScript:用JS函数隐藏浏览器地址栏 .
  16. Paddle 印刷电路板(PCB)瑕疵检测
  17. 课设:指纹签到系统-支持PC网页端查看
  18. 第3讲 旋转向量、欧拉角、四元数
  19. 百度地图坐标反查html,通过百度地图api获得坐标或者反向查询地址
  20. Tal Ben-Shahar 积极心理学_课程小结

热门文章

  1. 遗传算法的C语言实现(一):以非线性函数求极值为例
  2. OJ7826-KKT最少的操作次数
  3. 计算机网络:自顶向下方法读书笔记(四)
  4. 百度的工业互联网新解,“开物”加速工业智能化升级
  5. 玛雅三维动画制作软件:Maya 2019 for Mac
  6. Mybatis xml映射文件错误,导致Tomcat无法启动,也不报异常
  7. 小程序图片加载不出来(显示)
  8. 企业应尽早使用BIM技术——BIM带来的优势
  9. Unity扩展编辑器五
  10. 2.4【HarmonyOS鸿蒙开发】堆栈布局StackLayout