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',width:100,align:'right'},
            {field:'userName',title:'姓名',width:100,align:'right'},
            {field:'age',title:'年齡',width:100,align:'right'}
        ]]
    });
});

這樣,大功告成,成功顯示分頁數據。

三.總結

對於MVC的三層結構的意義似乎很了解了,但是在實際的運用上,還做不到爐火純青,主要體現在Controller層次和Service的層次上,而我的Service層上幾乎沒有什么操作,只是返回一個Dao層的一個結果,而大量的(我也不清楚Controller上的代碼是否為業務邏輯)業務邏輯都寫在了Controller上面,顯得有些頭重腳輕,不便於日后程序的更改。

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM