使用 layui 后端分页的实例

前端代码

<div class="layui-fluid" style="margin: 1em 1em 0em 0em;">
    <div class="layui-row layui-col-space15">
        <div class="layui-col-md12" style="text-align: right">
            <a class="layui-btn" href="/toAddKnowledgePage" target="_blank">写文章</a>
            <div class="layui-inline">
                <input id="searchText"
                       value="$!{title}"
                       class="layui-input"
                       style="border-radius: 10px"
                       autocomplete="on"
                       type='search'
                >
            </div>
            <button id="search-btn" class="layui-btn layui-btn-radius">搜索</button>
        </div>

    </div>
</div>


<div class="layui-fluid" id="LAY-component-timeline">
    <div class="layui-row layui-col-space15">
        <div class="layui-col-md12">
            <div class="layui-card">
                <div class="layui-card-body" id="layui-card-body">
                    <ul class="layui-timeline">
                        #foreach($e in $feeds)
                            <li class="layui-timeline-item">
                                <i class="layui-icon layui-timeline-axis"></i>
                                <div class="layui-timeline-content layui-text">
                                    <h3 class="layui-timeline-title">
                                        <img src="https://work.alibaba-inc.com/photo/$e.creator.80x80.jpg"
                                             class="layui-nav-img">
                                        <a href="/knowledge/$e.id" target="_blank" style="color: #469689">$e.title</a>
                                    </h3>
                                    <h5 class="layui-timeline-title">
                                        $!e.creatorNickName
                                        $date.format("yyyy-MM-dd HH:mm:ss",$e.gmtCreate)
                                    </h5>
                                    <textarea class="content" id="answer-${e.id}">
                                        $e.answer
                                    </textarea>
                                </div>
                            </li>
                        #end
                    </ul>

                </div>

                <div class="layui-card-footer" style="text-align: center">
                    <div id="pagination"></div>
                </div>
            </div>
        </div>
    </div>
</div>

<style>
    .layui-layedit {
        border-width: 0px;
        border-style: solid;
        border-radius: 2px;
    }
</style>

<script src="/assets/layui/layui.all.js"></script>
<script>
    $(function () {

        $('#search-btn').on('click', () => {
            var title = $('#searchText').val()
            location.href = '/?title=' + title;
        });


        layui.use('layedit', function () {
            layedit = layui.layedit;
            #foreach($e in $feeds)
                layedit.build('answer-$e.id', {height: 600, tool:[]});
            #end
        });

        var laypage = layui.laypage
        //完整功能
        laypage.render({
            elem: 'pagination'
            , count: $total //数据总数,从服务端得到
            , limit: $pageSize
            , curr: $pageNum
            , layout: ['count', 'prev', 'page', 'next', 'limit', 'refresh', 'skip']
            , jump: function (obj, first) {
                //obj包含了当前分页的所有参数,比如:
                console.log(obj.curr); //得到当前页,以便向服务端请求对应页的数据。
                console.log(obj.limit); //得到每页显示的条数

                //首次不执行
                if (!first) {
                    //do something
                    var title = $('#searchText').val()
                    var href = '/?title=' + title;
                    href += '&pageNum=' + obj.curr;
                    href += '&pageSize=' + obj.limit;
                    console.log(href)
                    location.href = href;
                }

            }
        });
    })
</script>

后端 Controller 代码

    @GetMapping("/")
    @VelocityLayout("/velocity/layout/index.vm")
    fun root(@RequestParam(value = "title", required = false) title: String?,
             @RequestParam(value = "pageNum", defaultValue = "1", required = false) pageNum: Int,
             @RequestParam(value = "pageSize", defaultValue = "10", required = false) pageSize: Int,
             model: Model): String {

        model.addAttribute("feeds", KnowledgeService.page(title, pageNum, pageSize).list)
        model.addAttribute("total", KnowledgeService.page(title, pageNum, pageSize).total)
        model.addAttribute("pageNum", pageNum)
        model.addAttribute("pageSize", pageSize)
        model.addAttribute("title", title)
        return "index"
    }




@Service
@Qualifier("KnowledgeServiceImpl")
class KnowledgeServiceImpl : KnowledgeService {
    override fun page(title: String?, currentPage: Int, limit: Int): PageInfo<Knowledge> {
        val orderBy = "id desc"//按照排序: 字段 倒序/排序
        PageHelper.startPage<Knowledge>(currentPage, limit, orderBy)
        val list = search(title)
        return PageInfo(list)
    }

    override fun search(title: String?): MutableList<Knowledge> {
        if (StringUtils.isEmpty(title)) {
            return KnowledgeMapper.listAll()
        } else {
            return KnowledgeMapper.searchByTile(title)
        }
    }

    @Autowired lateinit var KnowledgeMapper: KnowledgeMapper
}



package com.alibaba.microtek.mapper.microtek;

import com.alibaba.microtek.model.microtek.Knowledge;
import org.apache.ibatis.annotations.ResultMap;
import org.apache.ibatis.annotations.Select;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;

import java.util.List;

public interface KnowledgeMapper {
    int deleteByPrimaryKey(Long id);

    int insert(Knowledge record);

    int insertSelective(Knowledge record);

    Knowledge selectByPrimaryKey(Long id);

    int updateByPrimaryKeySelective(Knowledge record);

    int updateByPrimaryKey(Knowledge record);

    @Select("SELECT * FROM knowledge WHERE title = #{title} limit 1")
    @ResultMap("BaseResultMap")
    Knowledge selectByTitle(String title);

    @Select("SELECT * FROM knowledge")
    @ResultMap("BaseResultMap")
    List<Knowledge> listAll();

    @Select("SELECT * FROM knowledge where title like concat('%', #{title}, '%')")
    @ResultMap("BaseResultMap")
    List<Knowledge> searchByTile(String title);

    @Select("SELECT count(*) FROM knowledge WHERE whos = #{url}")
    int countByUrl(String url);
}


效果:

image.png

源代码工程在这里:

https://github.com/KotlinSpringBoot/saber

请不吝您的 Star 哦.

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,937评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,503评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,712评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,668评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,677评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,601评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,975评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,637评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,881评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,621评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,710评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,387评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,971评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,947评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,189评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,805评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,449评论 2 342

推荐阅读更多精彩内容