你的位置:首页 > Java教程

[Java教程]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;  }