datagrid界面,使用泛型封装JSON结果数据

Posted 张好好

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了datagrid界面,使用泛型封装JSON结果数据相关的知识,希望对你有一定的参考价值。

 

 

1、学生列表的 html部分

<script type="text/javascript">
$(function(){
    //创建dataGrid
    $("#dg").datagrid({
        url:\'StudentServlet\',    //数据来源
        //冻结列
        frozenColumns:[[
        {field:\'id\',checkbox:true},
        {field:\'sno\',title:\'学号\',width:100,sortable:true} ]],        \\\\可排列
        
        //列的定义
        columns:[[

            {field:\'sname\',title:\'姓名\',width:100},
            {field:\'sclass\',title:\'班级\',width:100,align:\'right\'},
            {field:\'ssex\',title:\'性别\',width:100,align:\'center\',hidden:false},            
            {field:\'sbirthday\',title:\'生日\',width:100,align:\'center\'    }
        ]],
        fitColumns:true, //不能和冻结列同时设置
        striped:true,//斑马线效果
        idField:\'sno\',//主键列,
        rownumbers:true,//显示行号
        singleSelect:false,//是否单选
        pagination:true,//显示分页栏
        pageList:[5,10,20],//每页行数选择列表
        pageSize:5,//初始页面大小
        remoteSort:false,//是否服务器端排序
        toolbar:[
                 {iconCls:\'icon-edit\',text:\'跳到第2页\',
                     handler:function(){$(\'#dg\').datagrid(\'gotoPage\', 2)}
                     
                 },
                 {iconCls:\'icon-edit\',text:\'跳到第3页\',
                     handler:function(){$(\'#dg\').datagrid(\'gotoPage\', 3)}
                     
                 }
                 ]
    });
})
</script>
数据表格<br>
<table id="dg"></table>
</body>

 2、StudentServlet部分(数据来源)

 

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        
        request.setCharacterEncoding("UTF-8");
        
        response.setCharacterEncoding("UTF-8");
        response.setContentType("text/html");      \\\\汉化
        
        String spage = request.getParameter("page");    \\\\获取page
        String srows = request.getParameter("rows");        \\\\获取rows
        
    
        
        if(spage!=null&&srows!=null)
        {
        int page =Integer.parseInt(spage);
        int rows =Integer.parseInt(srows);
    
        String json = new StudentService().getPageJSON(page,rows);    \\\\调用方法
        
        response.getWriter().println(json);
        }
        else
        {
            response.getWriter().println("{\'total\':0,\'row\':[]}" );
        }
                
    }

3、StudentService() 类

public class StudentService {
    
    //查询分页数据
    //返回JSON
    public String getPageJSON(int page,int rows)
    {
        String rtn =    "{\\"total\\":0,\\"row\\":[]}" ;
        
        int total  =  new StudentDAO().getTotal();
        
        if(total > 0 )
        {
            List<Student> ls = new StudentDAO().getPageList(page, rows);
            
            String ls_json = JSONArray.toJSONString(ls);
            
            rtn = "{\\"total\\":"+total+",\\"rows\\":"+ls_json+"}";          \\\\规范 json 格式
        }
        return rtn;
    }
    
}

 

4、StudentDAO()类内的 getPageList(获取分页数据集合) 和 getTotal(获取数据条数) 的方法

//获取分页数据集合
    public List<Student> getPageList(int page, int rows)
    {
        List<Student> rtn = new ArrayList<Student>();
        
        init();
        
        rtn = se.createQuery("from Student order by sno").
                setMaxResults(rows).setFirstResult((page-1)*rows)
                .list();
        
        destroy();        
        
        return rtn;
        
    }
    
    
    //获取数据条数
    public int getTotal()
    {
        int rtn = 0;
        
        init();
        
        List<Object> lo = se.createQuery("select count(1) from Student").list();
            
        if(lo!=null&&lo.size()>0)
        {
            rtn = Integer.parseInt(lo.get(0).toString());
        }
        
        
        destroy();
        
        return rtn;
    }

 

以上是关于datagrid界面,使用泛型封装JSON结果数据的主要内容,如果未能解决你的问题,请参考以下文章

easyUI 使用datagrid 返回的json 数据正确 为啥页面显示不出来

jdbc增删改查操作,封装工具类,实现泛型接口无限套娃

Java中让fastJson识别Colloction和Map中的泛型类

JAVAEE——BOS物流项目04:学习计划datagrid分页查询批量删除修改功能

Dojo 中的 DataGrid,带有来自 servlet 的 json 数据

WPF数据绑定问题(很菜的)