专注于经验分享
   工具共享。

java获取指定文件的类型

阅读(481)

某些情况下我们需要鉴别一个文件是什么类型的,此次演示一下如何获取文件的类型,非根据后缀名判断,及时没有后缀名也可以鉴别。

(更多…)

SpringBoot简单配置Spring Quartz定时器

阅读(803)

在实际开发中,定时器使我们很多开发场景中必不可少的。比如我们需要每隔一个时间段执行一次操作。java再带的定时任务局限性太大。有了Quartz定时器用起来会方便很多。

(更多…)

java实现layui分页前后端完整实例

阅读(1623)

layui一直备受国内web开发者的喜欢。使用简单,样式也较为好看。本次说一下layui分页的实例,首先先引入layui,那是肯定的。

  • 效果:
    Hellohao图床
  • 引入一个maven依赖:
    pagehelper这个插件很方便,让我们写分页sql时只写查询就行。自动封装分页的一些sql,如:自动增加imit,自动count总数等。
        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper-spring-boot-starter</artifactId>
            <version>1.2.10</version>
        </dependency>
  • 来看页面如何写:
    很简单,写一个table标签就行.
    需要注意的是:我在script标签中加入了th:inline="none",这里说明一下,由于我的项目是SpringBoot项目,用的模板引擎是thymeleaf所以加上th:inline="none" 就代表此区域不使用thymeleaf表达式。因为[[]]符号会冲突。没有使用的不用添加,会报错。

    <table id="dates" lay-filter="test"></table>
    
    <script type="text/javascript" th:inline="none">
        layui.use('table', function(){
        var table = layui.table;
                    table.render({
                elem: '#dates'
                ,url:'/admin/selectusertable'
                ,limit:5 //默认为10
                ,cols: [[
                    {field:'id', width:50, title: '编号', sort: true} //sort:true页面可进行排序操作
                    ,{field:'username',  title: '用户名'}
                    ,{field:'email',width:170,  title: '邮箱', sort: true}
                    ,{field:'password',width:170,  title: '密码'}
                    ,{field:'birthder',width:170,  title: '注册时间'}
                    ,{field:'level',width:100,  title: '等级',templet: function(d){
                        var str = '';
                        if(d.level==1){str='普通用户';}
                        else if(d.level==2){str='管理员';}
                            return str;
                        }
                        }
                    ,{field:'level',width:100,  title: '操作',templet: function(d){
                            return '<a class="layui-btn layui-btn-xs layui-btn-danger" onclick="dele('+d.id+');">删除</a>';
                        }
                    }
                ]]
                ,page: true
                ,done:function(res, curr, count){
                    //数据的回调用,可不写
                }
            });
        });
    </script>
  • 接下来时Controller实现:

        //获取用户信息列表
    @RequestMapping(value = "/selectusertable2")
    @ResponseBody
    public Map<String,Object>selectByFy12(HttpSession session, @RequestParam(required=false,defaultValue="1") int page,
                                          @RequestParam(required=false) int limit) {
        // 使用Pagehelper传入当前页数和页面显示条数会自动为我们的select语句加上limit查询
        // 从他的下一条sql开始分页
        PageHelper.startPage(page, limit);
        List<User> users  = userService.getuserlist();// 这是我们的sql
            // 使用pageInfo包装查询
        PageInfo<User> rolePageInfo = new PageInfo<>(users);//
        Map<String,Object> map=new HashMap<String,Object>();
        map.put("code",0);
        map.put("msg","");
        map.put("count",rolePageInfo.getTotal());
        map.put("data",rolePageInfo.getList());
        return map;
    }
  • SQL语句就简单多了:
    什么都不用加,直接写查询就行,插件会自动帮你做limit或者count

     
     SELECT * FROM user order by birthder desc

使用PageHelper + bootstrap实现分页

阅读(256)

bootstrap框架小编个人感觉很强大,就是Demo有点少,能节省我们很多时间。本次我来讲讲分页的使用吧。使用bootstrap分页不仅美观,各种计算和传值都不用我们去管,很方便的。

先引入依赖

  • 这是Spring Boot的依赖

        com.github.pagehelper
        pagehelper-spring-boot-starter
        1.2.10
  • 这是普通maven项目的依赖

    com.github.pagehelper
    pagehelper
    4.2.0

看下我们的分页查询数据的sql语句:(不需要写limit,PageHelper会帮我们封装好,后面讲)


    SELECT
        * 
    FROM
        imgdata 
        where 
        userid = #{userid} 

这里我就省略了dao层和service层架构了。直接看controller怎么用吧:

    @RequestMapping(value = "/topage.do")
    @ResponseBody
    public String selectByFy(HttpSession session, Integer pageNum, Integer pageSize) {
        JSONObject jsonObject = new JSONObject();
        Integer userid = (Integer) session.getAttribute("userid");
        //使用Pagehelper传入当前页数和页面显示条数会自动为我们的select语句加上limit查询
        //从他的下一条sql开始分页
        PageHelper.startPage(pageNum, pageSize);
        List images = imgService.selectimg(userid);//这是我们的sql
        //使用pageInfo包装查询
        PageInfo rolePageInfo = new PageInfo(images);
        jsonObject.put("total", rolePageInfo.getTotal());
        jsonObject.put("rows", rolePageInfo.getList());
        return jsonObject.toString();
    }

接下来我们再看一下页面如何使用bootstrap的分页:


 // 分页
        var t = $("#table_server").bootstrapTable({
            url: '/admin/topage.do',//请求后台的url
            method: 'get',
            dataType: "json",
            striped: true,//设置为 true 会有隔行变色效果
            undefinedText: "空",//当数据为 undefined 时显示的字符
            pagination: true, //分页
            // paginationLoop:true,//设置为 true 启用分页条无限循环的功能。
            showToggle: "true",//是否显示 切换试图(table/card)按钮
            showColumns: "true",//是否显示 内容列下拉框
            pageNumber: 1,//如果设置了分页,首页页码
            // showPaginationSwitch:true,//是否显示 数据条数选择框
            pageSize: 5,//如果设置了分页,页面数据条数
            pageList: [5, 10, 20, 40],    //如果设置了分页,设置可供选择的页面数据条数。设置为All 则显示所有记录。
            paginationPreText: '‹',//指定分页条中上一页按钮的图标或文字,这里是<
            paginationNextText: '›',//指定分页条中下一页按钮的图标或文字,这里是>
            // singleSelect: false,//设置True 将禁止多选
            search: false, //显示搜索框
            data_local: "zh-US",//表格汉化
            sidePagination: "server", //服务端处理分页
            queryParams: function (params) {//自定义参数,这里的参数是传给后台的,我这是是分页用的
                return {//这里的params是table提供的
                    pageNum: (params.offset / params.limit) + 1,//从数据库第几条记录开始
                    pageSize: params.limit//找多少条

                };
            },
            idField: "链接",//指定主键列
            columns: [
                {
                    title: '#',//表的列名
                    formatter: function (value, row, index) {
                        //return index+1; //序号正序排序从1开始
                        var pageSize = $('#table_server').bootstrapTable('getOptions').pageSize;//通过表的#id 可以得到每页多少条
                        var pageNumber = $('#table_server').bootstrapTable('getOptions').pageNumber;//通过表的#id 可以得到当前第几页
                        return pageSize * (pageNumber - 1) + index + 1;    //返回每条的序号: 每页条数 * (当前页 - 1 )+ 序号
                    },
                    align: 'center'//水平居中
                },
                {
                    title: '链接',
                    field: 'imgurl',
                    align: 'center'
                },
                {
                    title: '日期',
                    field: 'updatetime',
                    align: 'center'
                },
                {
                    //EMAIL
                    title: '大小',
                    field: 'sizes',
                    align: 'center'
                },
                {
                    //部门名字
                    title: '操作',
                    field: '',//可以直接取到属性里面的属性,赞
                    align: 'center'
                }

            ]
        });

这样分页就做完了
image.png

— END —