liss 发表于 2013-2-6 11:11:55

SSH+Extjs分页小例子

刚学,只做了简单的分页显示,借鉴别人的,网址忘了,呵呵
数据库:
   news表(id,newsTypeId,newsTitle,newsContent,newsDateTime)
   newstype表(id,newstypeName)
NewsDAO.java//一页显示的新闻public List findPageAll(final int start,final int limit){return getHibernateTemplate().executeFind(new HibernateCallback(){   public Object doInHibernate(Session session)   throws HibernateException, SQLException {    Query q = session.createQuery("from News n left join fetch n.newstype");    q.setFirstResult(start*limit);    q.setMaxResults(limit);    return q.list();   }   }); }//得到记录总条数public int totalRecord(){int count = 0;Long l = (Long)getHibernateTemplate().execute(new HibernateCallback(){   public Object doInHibernate(Session session)   throws HibernateException, SQLException {    Query q = session.createQuery("select count(n.id) from News n");    return q.uniqueResult();   }    });count = l.intValue();return count; }NewsAction.javapublic ActionForward list(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) {   int totalProperty = adminService.totalPropertyByNews();int start;try {   start = Integer.parseInt(request.getParameter("start"));} catch (NumberFormatException e1) {   start = 0;}int limit;try {   limit = Integer.parseInt(request.getParameter("limit"));} catch (NumberFormatException e1) {   limit = 2 ;}    if(start>0)   start = start/limit;    //Hibernate级联时,用json有错误,要把被级联的那个对象干掉,这样就没法显示被级联的对象了//JsonConfig conf = new JsonConfig();//conf.setExcludes(new String[]{"newstype"});    List list = adminService.findPageAllNews(start, limit);JSONArray jsonArray = new JSONArray();Iterator ite = list.iterator();//对list转变成的ite进行遍历,得到每个对象,并put到map里,再把map放到json数组里while(ite.hasNext()){   News news = (News) ite.next();   Map map = new HashMap();   map.put("id", news.getId());   map.put("newstype", news.getNewstype().getNewstypeName());   map.put("newsTitle", news.getNewsTitle());   map.put("newsContent", news.getNewsContent());   String time = new SimpleDateFormat("yyyy-MM-dd").format(news.getNewsDateTime());   map.put("newsDateTime", time);   jsonArray.add(map);}      String jsonStr = jsonArray.toString();//为了分页,要加上start,limit,totalProperty,下面的符合json数据的形式String jsonString = "{start:"+start+",limit:"+limit+",totalProperty:"+totalProperty+",newsList:"+jsonStr+"}";response.setContentType("text/html;charset=utf-8");    try {   //输出来,到jsp页面调用   response.getWriter().write(jsonString);} catch (IOException e) {      e.printStackTrace();}return null;//返回null } 
newsList.jsp<script type="text/javascript">Ext.onReady(function(){var sm = new Ext.grid.CheckboxSelectionModel();var store =new Ext.data.Store({proxy: new Ext.data.HttpProxy({url:"news.do?method=list",method:"post"}),reader: new Ext.data.JsonReader({//读取json数据root:'newsList',//totalProperty:'totalProperty',//总记录数id:'id'},[{name:'id'},{name:'newstype'},{name:'newsTitle'},{name:'newsContent'},{name:'newsDateTime'}])});//创建列var column = new Ext.grid.ColumnModel();column.defaultSortable = true;//默认可排序//创建一个工具条var tba = new Ext.Toolbar();//面板var grid = new Ext.grid.GridPanel({el:'showNews',width:600,height:300,title:'新闻列表',store:store,cm:column,//创建的列trackMouseOver:false,autoScroll: true,loadMask: {msg:'正在加载数据,请稍侯……'},sm:sm,//下边bbar:new Ext.PagingToolbar({pageSize:2,store:store,displayInfo:true,displayMsg:'显示第 {0} 条到 {1} 条记录,一共 {2} 条',emptyMsg:'没有记录'})});    grid.render();store.load({params:{start:0,limit:2 }});}); </script><body>    <div id="showNews" ></div></body> 
页: [1]
查看完整版本: SSH+Extjs分页小例子