博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring mvc+easyui做列表展示及分页
阅读量:6707 次
发布时间:2019-06-25

本文共 6156 字,大约阅读时间需要 20 分钟。

hot3.png

Spring mvc有一个注解@ResponseBody可以自己将返回数据解析成json,不用在response.getWriter(),设置response的编码之类的。

1、首先在spring-mvc.xml中配置如下

        
            
                
application/json;charset=UTF-8
            
                
    
        
            
                
                    
            
            

  别忘了,在下面还有一个UTF8StringHttpMessageConcerter类需要引入

package com.liyi.test.common;import java.io.IOException;import java.io.OutputStreamWriter;import java.nio.charset.Charset;import java.util.Arrays;import java.util.List;import org.springframework.http.HttpOutputMessage;import org.springframework.http.MediaType;import org.springframework.http.converter.StringHttpMessageConverter;import org.springframework.util.FileCopyUtils;public class UTF8StringHttpMessageConverter extends StringHttpMessageConverter {    private static final MediaType utf8 = new MediaType("text", "plain", Charset.forName("UTF-8"));    private boolean writeAcceptCharset = true;    @Override    protected MediaType getDefaultContentType(String dumy) {        return utf8;    }    protected List
 getAcceptedCharsets() {        return Arrays.asList(utf8.getCharSet());    }    protected void writeInternal(String s, HttpOutputMessage outputMessage)    throws IOException {        if (this.writeAcceptCharset) {            outputMessage.getHeaders().setAcceptCharset(getAcceptedCharsets());        }        Charset charset = utf8.getCharSet();        FileCopyUtils.copy(s, new OutputStreamWriter(outputMessage.getBody(), charset));    }    public boolean isWriteAcceptCharset() {        return writeAcceptCharset;    }    public void setWriteAcceptCharset(boolean writeAcceptCharset) {        this.writeAcceptCharset = writeAcceptCharset;    }}

2、配置好了,就可以写展示列表的后台代码了,以下,有两个方法,一个是做页面跳转用的,一个是用于ajax请求数据的。

    @RequestMapping("/toUserList")    public String redirctUserList(){        return "user/new_user_list";            }        @ResponseBody    @RequestMapping("/userList")    public String userList(@RequestParam Map
 conds){        //默认每页10条        int pageSize = 10;        //默认第一页 计算开始条数        int currentPage = 1;        //获取页面传来每页显示条数        String row = (String) conds.get("rows");        //获取页面传来当前页码        String page = (String) conds.get("page");        if(null!=row&&!"".equals(row)){            pageSize=Integer.valueOf(row);        }        if(null!=page&&!"".equals(page)){            currentPage= Integer.valueOf(page);        }        Map
 map = new HashMap
();        //计算一共有多少条        int count = userService.getTotalPage();        map.put("pageCount",pageSize);        //计算从第几条开始        map.put("currentPage",new PageUtil().getCurrent(currentPage,pageSize));        List
 list = userService.findAll(map);        Map
 map1 = new HashMap
();        map1.put("total", count);        map1.put("rows",list);        String json = JSON.toJSONString(map1, true);        System.out.println(json);        return json;    }

 只需要把你需要返回的数据,用fastjson将对象转成json串传入到页面,页面直接就可以取到。其中要注意,easyui展示列表的json如下:

[    {        "total": 13,        "rows": [            {                "createTime": 1438678875000,                "id": 1,                "mobile": "123456",                "name": "liyi",                "pwd": "123456"            },            {                "createTime": 1438679219000,                "id": 2,                "mobile": "123456",                "name": "scc",                "pwd": "123456"            },            {                "createTime": 1438679264000,                "id": 3,                "mobile": "123456",                "name": "diudiu",                "pwd": "123456"            },            {                "createTime": 1438679338000,                "id": 4,                "mobile": "123456",                "name": "xiaopaigu",                "pwd": "123456"            },            {                "createTime": 1438680558000,                "id": 5,                "mobile": "123456",                "name": "iphone",                "pwd": "123456"            },            {                "createTime": 1438682344000,                "id": 6,                "mobile": "123456",                "name": "iphone1",                "pwd": "123456"            },            {                "createTime": 1438754235000,                "id": 7,                "mobile": "123456",                "name": "abc",                "pwd": "123456"            },            {                "createTime": 1438852983000,                "id": 8,                "mobile": "11",                "name": "11",                "pwd": "11"            },            {                "createTime": 1438914359000,                "id": 9,                "mobile": "123456",                "name": "123456",                "pwd": "456789"            },            {                "createTime": 1439530418000,                "id": 10,                "mobile": "123",                "name": "123",                "pwd": "123"            }        ]    }]

3、jsp页面首先引入easyui的js 以及css

   
   
 
    $(function(){        $('#dg').datagrid({                url:'${app}/userController/userList.do',                columns:[[                    {field:'name',title:'姓名',width:100 },                    {field:'mobile',title:'手机号',width:100},                    {field:'_operate',width:80,align:'center',formatter:function(value,rec){                                                               return "
编辑";                                                         },title:'操作'}                ]],           toolbar: [{                iconCls: 'icon-add',                handler: function(){alert('编辑按钮')}            },'-',{                iconCls: 'icon-help',                handler: function(){alert('帮助按钮')}            }],            fitColumns:true,            striped:true,            pagination:true,            rownumbers:true,            pageNumber:1,            pageSize:10,            pageList:[10,20,30,40,50]                      });     })    

    4、分页你可以用firefox观察一下,他会传入到后台两个参数,一个是当前页page,一个是rows每页的数量,根据我上篇文章的分页工具即可。在找到上面的List展示方法就可以了。

转载于:https://my.oschina.net/u/1998885/blog/492498

你可能感兴趣的文章
webpack系列之一总览
查看>>
乌龙事件之chrome页面部分白屏
查看>>
FP 视角下的领域驱动设计
查看>>
玩转iOS开发:iOS中的Socket编程(二)
查看>>
如何打造BCH使用的刚性需求?
查看>>
一个小需求引发的思考
查看>>
JSX,了解一下?
查看>>
升级Swift4 0遇到的坑
查看>>
第一本Python神经网络编程译著图书终于来啦
查看>>
四两拨千斤式的攻击!如何应对Memcache服务器漏洞所带来的DDoS攻击?
查看>>
2017 Material design 第四章第二节《单位和尺寸》
查看>>
2017 Material design 第一章第三节《Material特性》
查看>>
iOS开发笔记(三):消息传递与转发机制
查看>>
Python缓存技术
查看>>
Metal入门(使用Metal画一个三角形)
查看>>
浅谈 iOS 应用启动过程
查看>>
Clang 之旅—[翻译]添加自定义的 attribute
查看>>
零基础学习Web开发的入门需要掌握哪些?
查看>>
慎用System.nanoTime()
查看>>
2017 移动端 iOS 年终工作总结-纯干货请自备酒水
查看>>