`
fxzjdtk
  • 浏览: 34915 次
  • 性别: Icon_minigender_1
  • 来自: 淄博
社区版块
存档分类
最新评论

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.java

public 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([				
				sm,														//复选框
				{header:'编号',dataIndex:'id'},
				{header:'类型',dataIndex:'newstype',
					renderer:function(value){
							if(value=="国内新闻")
								return "<font color='red'>国内新闻</span>";
					}
				},
				{header:'标题',dataIndex:'newsTitle'},
				{header:'内容',dataIndex:'newsContent'},
				{header:'时间',dataIndex:'newsDateTime'}				
			]);
			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>

分享到:
评论
10 楼 jun117117 2012-09-26  
楼主是否可以把源码共享出来。  能发我邮箱吗,jun117117@163.com
9 楼 yuanyu5237 2009-04-10  
楼主可不可以共享一下这个代码?完整的(带JAR包的),我的邮箱是:yuanyu5237@sina.com,谢谢
8 楼 programming 2009-03-17  
楼主是否可以把源码共享出来。  能发我邮箱吗。yanyongqing87@163.com
7 楼 fxzjdtk 2008-12-30  
zt843217 写道

fxzjdtk&nbsp;&nbsp; 谢谢分享 偶是ext新手 学习学习再学习!

我也是菜鸟,不过现在ext先不学了,有点头疼,现在听到ext就乱。
6 楼 zt843217 2008-12-08  
fxzjdtk   谢谢分享 偶是ext新手 学习学习再学习!
5 楼 fxzjdtk 2008-11-13  
justry 写道

zhongnanhai.8 写道
如果你面对海量数据,这样做就没意义啦... 即然 你有此一说,贴上来一段处理海量的,让我们学习学习。谢谢先。

首先,谢谢您的建议,但是我对ExtJs了解的少之又少,刚开始学,可以让和我遇到同样问题的人借鉴借鉴,献丑了。
4 楼 justry 2008-11-11  
zhongnanhai.8 写道
如果你面对海量数据,这样做就没意义啦...


即然 你有此一说,贴上来一段处理海量的,让我们学习学习。谢谢先。
3 楼 justry 2008-11-11  
zhongnanhai.8 写道
如果你面对海量数据,这样做就没意义啦...

不是每个人人都有机会面对海量数据的。
整个地球村 真正玩过海量数据的人,也曲指可数吧,似乎
2 楼 zhongnanhai.8 2008-11-11  
如果你面对海量数据,这样做就没意义啦...
1 楼 liuyunpohai 2008-11-11  
谢谢啦!楼主辛苦了!写的很详细啊!

相关推荐

    SSH+ExtJs分页小例子

    在这个"SSH+ExtJs分页小例子"中,我们将探讨如何将这两种技术结合实现数据分页显示。 首先,我们来看NewsDAO.java文件。这个文件包含了两个关键方法:`findPageAll`和`totalRecord`。`findPageAll`方法实现了分页...

    ssh+extjs全注解的上传、分页、验证码的demo

    这个“ssh+extjs全注解的上传、分页、验证码的demo”提供了如何在SSH后端框架基础上,结合EXTJS实现文件上传、分页显示数据以及验证码功能的示例。 首先,Struts2作为MVC(模型-视图-控制器)框架,负责处理HTTP...

    SSH+Extjs框架

    SSH+ExtJS框架是Web应用开发中的一个常见组合,它结合了Struts2、Hibernate和Spring三大主流Java EE框架,并引入了ExtJS作为前端展示层技术。这个框架的使用大大提高了开发效率,提供了灵活的数据管理和用户界面交互...

    ssh+extjs4整合开发

    在IT行业中,SSH+EXTJS4的整合开发是一种常见的前端与后端技术栈结合,用于构建功能丰富的Web应用程序。SSH代表Spring、Struts和Hibernate,它们分别是Java领域中用于处理不同层面的三个核心框架:Spring提供了依赖...

    SSH+Extjs开发视频教程-基于SSH+Maven+Extjs4+MySQL技术实战开发CRM客.doc

    SSH+Extjs开发视频教程-基于SSH+Maven+Extjs4+MySQL技术实战开发CRM客.doc

    ssh+extjs+mysql整合

    在"ssh+extjs+mysql整合"中,我们将SSH框架与ExtJS前端技术和MySQL数据库结合起来,构建一个完整的Web应用。以下是对这个整合过程的详细说明: 1. **Spring**:Spring作为核心框架,负责管理应用程序的各个组件,...

    ssh+extjs项目代码

    最近自己动手做了一个后台使用struts2+Hibernate+Spring 前台使用extjs的工程当作练习。...后续可以通过日期或者内容进行查询和修改。 主要的练习点在 1 SSH框架的搭建和使用; 2 extjs组件化创建。

    SSH+EXTJS页面图书管理系统

    SSH+EXTJS页面图书管理系统SSH+EXTJS页面图书管理系统SSH+EXTJS页面图书管理系统SSH+EXTJS页面图书管理系统SSH+EXTJS页面图书管理系统SSH+EXTJS页面图书管理系统SSH+EXTJS页面图书管理系统

    SSH+ExtJs的demo完全实现

    SSH+ExtJS是一种常见的Web应用开发模式,其中SSH代表Spring、Struts和Hibernate这三个Java开源框架的首字母缩写,而ExtJS则是一个强大的JavaScript前端框架。本demo完全实现了SSH和ExtJS的集成,提供了从前端用户...

    ssh + extjs 4登录的小例子(前后台代码)

    ssh + extjs 4登录的小例子(前后台代码)

    ssh+extjs4小项目

    标题中的“ssh+extjs4小项目”指的是一个基于SSH框架和ExtJS 4的轻量级Web应用程序。SSH是Spring、Struts2和Hibernate三个开源框架的组合,它们在Java Web开发中广泛使用,提供了模型-视图-控制器(MVC)架构的支持...

    SSH+EXTJS4

    SSH+EXTJS4 的一个模块实现,使用的是mysql数据库,sql文件在文件夹里面

    ssh+extjs 小项目

    struts2+spring+hibernate整合(ssh+extjs整合)小项目“VIP消费查询系统”源码(源码+系统设计文档+建表语句+所有jar包)。该项目包含以下功能: 登录:本系统为商场VIP消费情况查询系统,具有一定的保密性。因此必须...

    SSH+Extjs Oa管理系统整合

    SSH+Extjs Oa管理系统整合是一项复杂而关键的IT任务,涉及到多个技术栈的集成,主要包括Struts、Spring和Hibernate这三个Java EE框架,以及Extjs前端框架。在这样的系统中,SSH负责后端业务逻辑处理和数据管理,而...

    ssh+extjs简单项目 spring定时任务

    SSH+ExtJS简单项目结合Spring定时任务是一种常见的企业级应用开发模式,主要涉及Spring、Struts2和Hibernate这三个Java EE框架以及ExtJS前端框架。在这个项目中,SSH用于后端业务逻辑处理和数据管理,而ExtJS则负责...

    SSH+ExtJS.rar

    标题“SSH+ExtJS.rar”所指的,是将两种技术——Secure Shell (SSH) 和 Extensible JavaScript (ExtJS) 结合使用的项目压缩包。这个压缩包可能包含了一个使用SSH和ExtJS构建的Web应用程序的源代码和其他相关资源。 ...

    ssh+extjs人力资源管理系统

    《SSH+ExtJS人力资源管理系统详解》 在信息技术领域,企业资源管理系统的开发是至关重要的,它可以帮助企业高效地管理和优化其人力资源。SSH(Struts2、Spring、Hibernate)与ExtJS的结合,为企业构建出一个功能...

    SSH + EXTJS_管理系统

    SSH + EXTJS_管理系统是一个基于SSH(Struts2、Spring、Hibernate)框架和EXTJS前端技术的综合管理系统项目。这个项目结合了后端强大的SSH框架和EXTJS的丰富交互界面,旨在提供一个高效、易用的企业级管理平台。 ...

    ssh+extjs+json

    【SSH+EXTJS+JSON】组合是开发Web应用程序的一种常见技术栈。SSH指的是Spring、Struts2和Hibernate三个开源框架的首字母缩写,EXTJS则是一个JavaScript库,用于构建富客户端应用程序,而JSON(JavaScript Object ...

    ssh+extjs CRUD

    ### SSH+ExtJS 开发CRUD功能:深入解析与实践指南 #### 一、引言与框架概述 在软件开发领域,尤其是企业级应用开发中,整合多种技术框架以实现高效、灵活的功能构建已经成为常态。其中,“SSH”(即Struts2、...

Global site tag (gtag.js) - Google Analytics