• 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上面,显得有些头重脚轻,不便于日后程序的更改。

  • 相关阅读:
    CPP(c++) google gflags
    CPP(c++) google gtest
    CPP(c++) google gmock
    CPP(c++) google glog
    CPP(c++) lambda
    CPP(c++) 多线程
    可以使退出终端后仍运行的命令行
    python下输出指定年月日的方法之一
    linux下时间相差8小时的问题
    C# 中结束阻塞模式的接收方法
  • 原文地址:https://www.cnblogs.com/weizizhe/p/3703286.html
Copyright © 2020-2023  润新知