spring+springMVC+mybatis的整合 part10

可以设置其他的页码和条数测试,均可以通过,所以分页的接口已经完成。单独拿出一个页面来实现

其实分页列表也没什么,重点在于做出列表局部刷新,减少页面请求。
具体的流程图如下:


按照上图中,可以看到我们只需要把上一页和下一页的ajax调用写好就能完成我们这个简单分页的网络请求。 至于第一页和最后一页的按钮事件也就是把页码设定为1和最后一页。
下一页的js调用:

var pageNum;
    function goToNextPage() {
        pageNum = parseInt(pageNum) + 1;//这里必须用parseInt(pageNum)这样才能拿到int型值,否则这里拿出来的是字符串
        $.ajax({
            type: "GET",//后端分页接口这里是没有指定请求方式
            url: '/actionLog/findLogList?pageNum=' + pageNum + '&pageSize=15',
            dataType: 'json', 
            cache: false,
            success: function (data) {
                if (data.code == 1) {
                    updateList(data);//更新列表界面
                    pageNum = data.pageNum;
                    $("#log-controller-now").html(pageNum);//把当前页面输出到网页对应ID的标签上面
                }
            }
        });
    }

从上面可以看到,分页列表的请求变化的是页码,然后每一页长度是固定的,然后拿到返回的数据进行加载就行了。

既然上面已经看到了下一页的界面数据加载了,
同理我们可以得出上一页的的js调用如下:

function goToLastPage() {
        pageNum = parseInt(pageNum) - 1;
        $.ajax({
            type: "GET",
            url: '/actionLog/findLogList?pageNum=' + pageNum + '&pageSize=15',
            dataType: 'json', 
            cache: false,
            success: function (data) {
                if (data.code == 1) {
                    updateList(data);
                    pageNum = data.pageNum;
                    $("#log-controller-now").html(pageNum);
                }
            }
        });
    }

js写出来,下面需要把网页数据加载进去
需要使用模版进行网页数据的加载。
在这里我们需要引入模版的js,js名称是:doT.min.js
从上面的上一页和下一页访问的js方法中,我们可以看到都使用了updateList(data)这个方法,这个方法就是来加载界面的
引入js后,我们需要开始写网页代码了

<div class="am-scrollable-horizontal am-text-ms" style="font-family: '微软雅黑';">
    <table class="am-table   am-text-nowrap">
        <thead>
            <tr>
                <th>id</th>
                <th>IP地址</th>
                <th>系统名称</th>
                <th>访问地址</th>
                <th>SessionId</th>
                <th>浏览器名</th>
            </tr>
        </thead>
        <tbody id="log-table-body">
            <script id="pagetmpl" type="text/x-dot-template">   <%--//这里js的ID为模版的id,type这个位模版类型--%>
                {{for(var i=0; i < it.length ; i++){ }} 
                    <tr>
                        <%--这里取得全是json中的字段名称--%>
                        <td> {{=it[i].id}}</td> 
                        <td>{{=it[i].ipAddrV4}}</td>
                        <td>{{=it[i].osName}}</td>
                        <td><span class="label label-danger"> {{ =it[i].description }} </span></td>
                        <td>{{=it[i].sessionId}}</td>
                        <td>{{=it[i].broName}}</td>
                    </tr>
                {{ } }}
            </script>
        </tbody>
    </table>
    <div class="am-cf">
        <div class="am-fr">
            <ul class="am-pagination tpl-pagination" id="log-table-page-controller">
                <li><a id="log-controller-last" onclick='goToLastPage()'>上一页</a></li>
                <li class="am-disabled"><a id="log-controller-now">1</a></li>
                <li><a id="log-controller-next" onclick="goToNextPage()">下一页</a></li>
            </ul>
        </div>
    </div>
</div>

我们知道应该怎么追加列表条目了,现在我们需要的是实现追加。按照代码结构观察我们可以发现,我们要想实现数据自动装载到页面上面,我们需要让程序顺序执行就对了。

<%--这一点js我们写在网页的body后面,因为我们网页的列表数据是异步加载的。所以让他直接执行就好了--%>
<script type="application/javascript">
    $.ajax({
        type: "GET",
        url: '<%=request.getContextPath()%>/actionLog/findLogList?pageNum=1&pageSize=15',
        dataType: 'json', //当这里指定为json的时候,获取到了数据后会自己解析的,只需要 返回值.字段名称 就能使用了
        cache: false,
        success: function (data) {
            if (data.code == 1) {
                pagefn = doT.template($("#pagetmpl").html());   //初始化列表模板
                updateList(data);   //更新数据
                pageNum = data.pageNum;
            }
        }
    });

    function updateList(data) {
        $("#pagetmpl").empty(); //清空模板数据
        $("#log-table-body").html(pagefn(data.data));   //加入数据到模板
    }

</script>

前面我们的JS是写在头部的,如果说自动执行肯定会找不到控件,所以我们需要让自动加载在页面完成后加载。也就是在</body>后加上

可能有人会发现我获取到的IPV4地址是0:0:0:0:0:0:0:1
这代码的问题只会出现在本机访问服务,获取ip时才会出现。而且如果你本机通过localhost127.0.0.1本机真实地址访问时获取到的ip也有区别
如果你把localhost改成127.0.0.1的话获取到的IP地址就是127.0.0.1,如果换成localhost获取到的就是0:0:0:0:0:0:0:1
然后我们在MainController中让页面可以跳转到行为日志表中

/*
    *日志主页
    */
    @GetMapping("/listActionLog")
    public String listActionLog() {
        return "list_action_log";
    }

下面我们可以测试下,登录后输入http://localhost:8080/ssm/mvc/listActionLog
跳转到行为日志表页面

Paste_Image.png

也许有人会问,URL中的ssm哪来的?
这个是在项目部署的时候配置的,可以看part2
至此 spring+springMVC+mybatis的简单整合基本结束
项目github地址:https://github.com/JinBinPeng/spring-springMVC-mybatis

主要参考于大牛Clone丶记忆的SSM集成之路

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

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,774评论 1 92
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 172,555评论 25 707
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,768评论 18 139
  • 无论世事如何变迁,让真情常在;无论工作如何繁忙,让联络常在;无论天涯还是咫尺,让祝福常在!新春快乐!  鸡年的钟...
    木森先生阅读 751评论 0 1
  • 中午等车的时候,看见一群穿着绿马夹的人站在地上举着长杆对着几棵柳树枝杈比划。仔细盯着杆子瞧了瞧才看清楚,四五米长的...
    铅笔芒种阅读 128评论 0 1