Javaweb使用thymeleaf局部刷新结合Layui插件实现Html分页

 更新时间:2021年10月26日 08:54:45   作者:善良勤劳勇敢而又聪明的老杨  
本文主要介绍了Javaweb使用thymeleaf局部刷新结合Layui插件实现Html分页,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

1、前言

最近个人在做开发的时候,需要实现前端的Html页面分页。由于好一段时间没写前端的代码了,有些生疏了。现就实践成果,做下记录与分享!

2、正文

 2.1 开发环境介绍

后端:SpringBoot、Thymeleaf

前端:Html、Jquery、Layui插件

2.2 实现代码

html页面代码:

<html lang="zh-cn" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.thymeleaf.org/thymeleaf-extras-shiro">
 
...
 
<table class="table table-hover text-center" id="refreshList" th:fragment="refreshList">
  <tr>
    <th width="100" style="text-align:left; padding-left:20px;">ID</th>
    <th width="10%">景点名称</th>
    <th width="10%">图片</th>
    <th>景点类型</th>
    <th>门票价格</th>
    <th>景点负责人</th>
    <th width="10%">创建时间</th>
    <th width="20%">操作</th>
  </tr>
  <tr th:each="view : ${viewList}" >
    <td style="text-align:left; padding-left:20px;"><input type="checkbox" name="id" value="" /></td>
    <td th:text="${view.viewTitle}"></td>
    <td ><img th:src="${'/upload/img/'+view.pictureUrl}"  alt="" width="100" height="70" /></td>
    <td th:switch="${view.type}">
      <span th:case="1">收费</span>
      <span th:case="2">免费</span>
    </td>
    <td th:text="${view.price == null or view.price == '' ? '暂无' : view.price}" ></td>
    <td th:text="${view.manager}"></td>
    <td th:text="${#dates.format(view.createTime,'yyyy-MM-dd HH:mm:ss')}"></td>
    <td><div class="button-group"> <a class="button border-main" th:href="${'/view/edit.do?viewId='+view.id}" rel="external nofollow" ><span class="icon-edit"></span> 修改</a> <a class="button border-red" href="javascript:void(0)" rel="external nofollow"  th:onclick="del([[${view.id}]])"><span class="icon-trash-o"></span> 删除</a> </div></td>  
  </tr>
</table>

Js代码:

<script src="/js/jquery.js"></script>
<script type="text/javascript" src="/layui/layui.js"></script>
<script type="text/javascript" src="/layui/layui.all.js"></script>
...
 
//分页
layui.use('laypage', function () {
    var laypage = layui.laypage;
 
    var total = 0;
    var limit = 6;
 
    //获取列表总数量
    $.ajax({
        url: '/view/count.do',
        type: 'POST',
        dataType: 'json',
        async: false,
        success: function (data) {
            if(data != null){
                total = data;
            }
        }
    });
 
 
    //执行一个laypage实例
    laypage.render({
        elem: 'pageDiv', //注意,这里的 pageDiv 是 ID,不用加 # 号
        count: total, //数据总数,从服务端得到
        limit: limit,//页面展示数据条数
        theme: '33ccff',//主题样式
        jump: function (obj, first) {
 
            if (!first) {
                $.ajax({
                    url: '/view/list.do',
                    type: 'POST',
                    data: {'pageSize': obj.limit, 'pageIndex': obj.curr},
                    success: function (data) {
                        if (data != null) {
                            $("#refreshList").html(data);
                        }
                    }
                });
            }
        }
    });
});

后端接口:

@PostMapping("/list.do")
public String getList(PageBean pageBean, Model model){
  if(Objects.isNull(pageBean)) pageBean = new PageBean();
  pageBean.setPageIndex((pageBean.getPageIndex()-1)*pageBean.getPageSize());
  List<View> viewList = viewService.getList(pageBean);
  model.addAttribute("viewList",viewList);
  //viewList是html页面名称,refreshList是html页面内定义的元素名称,在html页面内可以看到
  return "viewList::refreshList";
}

这里说明一下,初次进入页面的时候,我这边使用的是另外一个GET类型的请求获取的数据,跟上面的POST请求接口几乎一样。

2.3 实现流程说明

通过Layui的分页插件代码,点击上下页的时候,调用上面JS中的代码。并获取Layui当前的分页的参数,请求后端列表接口。然后通过thymeleaf的 

th:fragment="refreshList"

将后端返回的数据,局部刷新到Html指定元素中。。。从而实现局部刷新的分页实现!!!

2.4 实现效果

3、总结

到此这篇关于Javaweb使用thymeleaf局部刷新结合Layui插件实现Html分页的文章就介绍到这了,更多相关Javaweb Html分页内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 从Java的jar文件中读取数据的方法

    从Java的jar文件中读取数据的方法

    这篇文章主要介绍了从Java的jar文件中读取数据的方法,实例分析了java档案文件的相关操作技巧,需要的朋友可以参考下
    2015-06-06
  • Java快速批量移动文件的实现方法

    Java快速批量移动文件的实现方法

    这篇文章主要介绍了Java快速批量移动文件的实现方法,需要的朋友可以参考下
    2014-03-03
  • Mybatis中如何设置sqlSession自动提交

    Mybatis中如何设置sqlSession自动提交

    在MyBatis中,默认情况下,获取的SqlSession对象不会自动提交事务,这意味着在进行更新、删除或插入等操作后,需要显式调用commit方法来提交事务,但是,可以在获取SqlSession时通过将openSession方法的参数设置为true
    2024-09-09
  • Spring执行sql脚本文件的方法

    Spring执行sql脚本文件的方法

    这篇文章主要介绍了Spring执行sql脚本文件的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-03-03
  • SpringSceurity实现短信验证码登陆

    SpringSceurity实现短信验证码登陆

    这篇文章主要介绍了SpringSceurity实现短信验证码登陆,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-06-06
  • 深入了解Java atomic原子类的使用方法和原理

    深入了解Java atomic原子类的使用方法和原理

    这篇文章主要介绍了深入了解Java atomic原子类的使用方法和原理,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,,需要的朋友可以参考下
    2019-06-06
  • Java中的Static class详解及实例代码

    Java中的Static class详解及实例代码

    这篇文章主要介绍了 Java中的Static class详解及实例代码的相关资料,在Java中我们可以有静态实例变量、静态方法、静态块。类也可以是静态的,需要的朋友可以参考下
    2017-03-03
  • SSH框架网上商城项目第29战之使用JsChart技术显示商品销售报表

    SSH框架网上商城项目第29战之使用JsChart技术显示商品销售报表

    这篇文章主要为大家详细介绍了SSH框架网上商城项目第29战之使用JsChart技术显示商品销售报表,感兴趣的小伙伴们可以参考一下
    2016-06-06
  • java如何读取文件目录返回树形结构

    java如何读取文件目录返回树形结构

    这篇文章主要介绍了java如何读取文件目录返回树形结构问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-01-01
  • Java日常练习题,每天进步一点点(6)

    Java日常练习题,每天进步一点点(6)

    下面小编就为大家带来一篇Java基础的几道练习题(分享)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧,希望可以帮到你
    2021-07-07

最新评论