一.概述
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 @ResponseBody3 public DataGrid getUsers(int page,introws){4 DataGrid dg = newDataGrid();5 List list =userManager.find(page, rows);6 Long total =userManager.getCountUsers();7 dg.setTotal(total);8 dg.setRows(list);9 returndg;10 }
UserController
2.UserManager主要就是通過UserDao傳入的page和rows 的find方法來獲取User的List結果集。
1 public List find(int page, introws) {2 returnuserDao.find(page, rows);3 }
userManager
3.UserDao通過hql語句,對于后面的return的方法。我也是抄過來的,具體什么意思也沒看。。。反正返回的結果是對的。。。
1 public List find(int page, introws) {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上面,顯得有些頭重腳輕,不便于日后程序的更改。
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态