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]