zoukankan      html  css  js  c++  java
  • SpringMVC+easyUI中datagrid分页实现_2014.5.1

    一.概述

    SpringMVC:

    1.是面对方法级变量的,在操作起来会比struts方便一些(structs是类级变量),具体体现在了srpingMVC的注解上面,

     如@RequstMapping("/login"),而且对于返回值ModelAndView这也是一大亮点,既可以返回一个页面(View),再加上@ResponseBody注解以后就可以返回一个      模型对象(也就是一种数据结构)。

    2.对于方法级传入的参数操作起来也相当方便,比如本例中,在加载DataGrid时,会像后台传递一个  page=1&rows=10 这样的数据,分别表示,第1页和10行数据。

       此时,只要在Controller对应的方法上添加两个参数(int page , int rows)就可以拿到这两个数据。

    二.具体实现

    1.UserController.java,定义了一个DataGrid的工具类,主要将需要回传的数据格式打包,其中total表示一共的数据,后面的为json数据对象。

    1 {"total":13,"rows":[{"id":1,"userName":"zhangsan","age":"22"},{"id":2,"userName":"123","age":"321"},{"id":3,"userName":"3123","age":"4444"},{"id":4,"userName":"432","age":"444"},{"id":5,"userName":"1234","age":"123412"},{"id":6,"userName":"1234","age":"4324"},{"id":7,"userName":"1234","age":"4324"},{"id":8,"userName":"1234","age":"4324"},{"id":9,"userName":"1234","age":"4324"},{"id":10,"userName":"1234","age":"4324"}]}
    DataGrid数据格式

     

     1     @RequestMapping("/getUsers")
     2     @ResponseBody
     3     public DataGrid getUsers(int page,int rows){
     4         DataGrid dg = new DataGrid();
     5         List list = userManager.find(page, rows);
     6         Long total = userManager.getCountUsers();
     7         dg.setTotal(total);
     8         dg.setRows(list);
     9         return dg;
    10     }
    UserController

    2.UserManager主要就是通过UserDao传入的page和rows 的find方法来获取User的List结果集。

    1 public List find(int page, int rows) {
    2         return userDao.find(page, rows);
    3     }
    userManager

    3.UserDao通过hql语句,对于后面的return的方法。我也是抄过来的,具体什么意思也没看。。。反正返回的结果是对的。。。

    1 public List find(int page, int rows) {
    2 String hql = "from User";
    3 Query query = this.sessionFactory.getCurrentSession().createQuery(hql);
    4 return query.setFirstResult((page - 1)*rows).setMaxResults(rows).list();
    5     }
    UserDao

    4.前段js,显示dataGrid数据,这里没有什么好说的,注意pageSize要和PageList相互配置才行。

    $(function(){
        $('#datagrid').datagrid({
            url:'user/getUsers',
            rownumbers:true,
            singleSelect:true,
            pagination:true,
            idField:'id',
            fitColumns:true,
            fit:true,
            nowarp:false,
            border:false,
            pageSize:5,
            pageList:[5,10],
            columns:[[  
                {field:'id',title:'id',100,align:'right'},
                {field:'userName',title:'姓名',100,align:'right'},
                {field:'age',title:'年龄',100,align:'right'}
            ]]
        });
    });

    这样,大功告成,成功显示分页数据。

    三.总结

    对于MVC的三层结构的意义似乎很了解了,但是在实际的运用上,还做不到炉火纯青,主要体现在Controller层次和Service的层次上,而我的Service层上几乎没有什么操作,只是返回一个Dao层的一个结果,而大量的(我也不清楚Controller上的代码是否为业务逻辑)业务逻辑都写在了Controller上面,显得有些头重脚轻,不便于日后程序的更改。

  • 相关阅读:
    [HNOI2002]营业额统计
    HDU 1374
    HDU 3345
    HDU 2089
    Graham扫描法
    Codeforces 1144D Deduction Queries 并查集
    Codeforces 916E Jamie and Tree 线段树
    Codeforces 1167F Scalar Queries 树状数组
    Codeforces 1167E Range Deleting
    Codeforces 749E Inversions After Shuffle 树状数组 + 数学期望
  • 原文地址:https://www.cnblogs.com/weizizhe/p/3703286.html
Copyright © 2011-2022 走看看