`
hnylj
  • 浏览: 210709 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

用eXtremeComponents做分页-简单方便

阅读更多

eXtremeComponents是提供更高级数据显示的开源JSP标签,用于以表格的形式来显示数据,它的功能强大且使用简单,常用的功能包括排序、分页、导出Excel与pdf等。使用ExtremeComponents列表组件,你需要去http://sourceforge.net/projects/extremecomp/下载发布的压缩包文件。不过现在更推荐使用javaEye里的GT-Grid ( 原名叫EC Side ), 地址:http://ecside.group.iteye.com/ ,大家可以去那里学习与讨论。

 

EC Side也是一个开源的列表组件,他是源自于开源列表组件 eXtremeComponents,不过已经早已脱离了eXtremeComponents而独立发展(里面仍有部分代码是来自eXtremeComponents)。青出于蓝而胜于蓝,EC Side比eXtremeComponents的功能更强大。一般我们建议先学习和使用一下eXtremeComponents,再去学习和使用EC Side.

 

以下是一个eXtremeComponents使用的示例,用来演示一下ExtremeComponents列表组件进行数据库数据分页显示的使用,更多跟深入的学习,您可以参考http://www.blogjava.net/lucky/articles/33380.html 或者http://blog.chinaunix.net/u/7893/showart_426623.html

 

完成下面的示例,需要按照如下的步骤进行:
先把一些准备工作做好,在MyEclipse新建web工程,在下载的ExtremeComponents压缩包中找到

commons-beanutils 1.7
commons-collections 3.0
commons-lang 2.0   
commons-logging 1.0.4
standard 1.0.2
extremecomponents-1.0.1.jar

将以上jar包和extremecomponents.tld文件拷贝到WEB-INF/lib目录下,并且把images整个文件夹拷贝到WebRoot下,以上的所有的jar包和文件都在下载的压缩包里可以找到,至此准备工作就完成了 。

 

1、建立数据库数据:
create database page;

use page;

create table student
(
stu_id integer auto_increment,
stuName varchar(255) not null,
address varchar(255) not null,
stuPhone varchar(255)not null,
primary key(stu_id)
);

insert into student(stuName,address,stuPhone) values('杨老板,'长沙','13787825190');

insert into student(stuName,address,stuPhone) values('王老板,'大连','13782251560');

这里可以复制上面的insert语句多插入几行不同的数据.

 

2、写一个类StudDAO.java来操作数据库,从数据库中取出数据,该类的代码如下:

package org.hnylj.eXtreme;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class StudDAO {
	private Connection conn = null ;
	private Statement stmt = null ;
	private PreparedStatement pstmt = null ;
	private ResultSet rs = null ;
	private static final String DRIVER = "com.mysql.jdbc.Driver" ;
	private static final String URL = "jdbc:mysql://localhost:3306/page" ;
	private static final String USERNAME = "root" ;
	private static final String PASSWORD = "123" ;
	
	private List<Map<String,String>> list = new ArrayList<Map<String,String>>() ;
	private Map<String,String> map = null ;

	public StudDAO () {
	}
	
	//数据库连接
	public synchronized Connection getConnection () {
		try {
			Class.forName (DRIVER) ;
			conn = DriverManager.getConnection (URL,USERNAME,PASSWORD) ;
		} catch (ClassNotFoundException e) {
			e.printStackTrace () ;
			return null ;
		} catch (SQLException e) {
			e.printStackTrace () ;
			return null ;
		} 
		return conn ;
	}
  
  public List<Map<String,String>> query () {
  	try {
  	  if (this.getConnection()!=null) {
  		  pstmt = this.getConnection().prepareStatement("select * from student") ;
  		  rs = pstmt.executeQuery () ;
  		  
  		  while (rs.next()) {
  			  map = new HashMap<String,String>() ;
  			  map.put("stuName", rs.getString("stuName")) ;
              map.put("address", rs.getString("address")) ;
              map.put("stuPhone", rs.getString("stuPhone")) ;
              list.add(map) ;
  		  }
  	  }
  	} catch(SQLException e) {
  		e.printStackTrace() ;
  	}
  	return list ;
  }
}

3、编写一个jsp页面,用来显示数据,其代码如下:

<%@ page language="java" import="java.util.*,org.hnylj.eXtreme.*"
	pageEncoding="gb2312"%>
<%@ taglib uri="WEB-INF/extremecomponents.tld" prefix="ec"%>

<html>
	<head>
		<title>用extremecomponents分页</title>
		<style type="text/css">
.eXtremeTable {
	margin: 0;
	padding: 0;
}

.eXtremeTable select {
	font-family: Verdana;
	font-size: 9px;
	border: solid 1px #EEE;
	width: 75px;
}

.eXtremeTable .tableRegion {
	border: 1px solid silver;
	padding: 2px;
	font-family: Verdana;
	font-size: 10px;
	margin-top: 7px;
}

.eXtremeTable .filter {
	background-color: #efefef;
}

.eXtremeTable .filter input {
	font-family: Verdana;
	font-size: 10px;
	width: 100%;
}

.eXtremeTable .filter select {
	font-family: Verdana;
	font-size: 9px;
	border: solid 1px #EEE;
	width: 100%;
}

.eXtremeTable .tableHeader {
	background-color: #308dbb;
	color: white;
	font-family: Verdana;
	font-size: 11px;
	font-weight: bold;
	text-align: left;
	padding-right: 3px;
	padding-left: 3px;
	padding-top: 4;
	padding-bottom: 4;
	margin: 0;
	border-right-style: solid;
	border-right-width: 1px;
	border-color: white;
}

.eXtremeTable .tableHeaderSort {
	background-color: #3a95c2;
	color: white;
	font-family: Verdana;
	font-size: 11px;
	font-weight: bold;
	text-align: left;
	padding-right: 3px;
	padding-left: 3px;
	padding-top: 4;
	padding-bottom: 4;
	border-right-style: solid;
	border-right-width: 1px;
	border-color: white;
}

.eXtremeTable .odd a,.even a {
	color: Black;
	font-size: 10px;
}

.eXtremeTable .odd td,.eXtremeTable .even td {
	padding-top: 2px;
	padding-right: 3px;
	padding-bottom: 2px;
	padding-left: 3px;
	vertical-align: middle;
	font-family: Verdana;
	font-size: 10px;
}

.eXtremeTable .odd {
	background-color: #FFFFFF;
}

.eXtremeTable .even {
	background-color: #dfe4e8;
}

.eXtremeTable .highlight td {
	color: black;
	font-size: 10px;
	padding-top: 2px;
	padding-right: 3px;
	padding-bottom: 2px;
	padding-left: 3px;
	vertical-align: middle;
	background-color: #fdecae;
}

.eXtremeTable .highlight a,.highlight a {
	color: black;
	font-size: 10px;
}

.eXtremeTable .toolbar {
	background-color: #F4F4F4;
	font-family: Verdana;
	font-size: 9px;
	margin-right: 1px;
	border-right: 1px solid silver;
	border-left: 1px solid silver;
	border-top: 1px solid silver;
	border-bottom: 1px solid silver;
}

.eXtremeTable .toolbar td {
	color: #444444;
	padding: 0px 3px 0px 3px;
	text-align: center;
}

.eXtremeTable .separator {
	width: 7px;
}

.eXtremeTable .statusBar {
	background-color: #F4F4F4;
	font-family: Verdana;
	font-size: 10px;
}

.eXtremeTable .filterButtons {
	background-color: #efefef;
	text-align: right;
}

.eXtremeTable .title {
	color: #444444;
	font-weight: bold;
	font-family: Verdana;
	font-size: 15px;
	vertical-align: middle;
}

.eXtremeTable .title span {
	margin-left: 7px;
}

.eXtremeTable .formButtons {
	display: block;
	margin-top: 10px;
	margin-left: 5px;
}

.eXtremeTable .formButton {
	cursor: pointer;
	font-family: Verdana;
	font-size: 10px;
	font-weight: bold;
	background-color: #308dbb;
	color: white;
	margin-top: 5px;
	border: outset 1px #333;
	vertical-align: middle;
}

.eXtremeTable .tableTotal {
	background-color: #FFFFFF;
	border-top: solid 1px Silver;
}

.eXtremeTable .tableTotalEmpty {
	background-color: #FFFFFF;
}
</style>
	</head>
	<body style="margin: 25px;">
		<% 
        StudDAO studDAO = new StudDAO() ;
		List<Map<String,String>> list = studDAO.query() ;
		request.setAttribute("studList", list) ;
        %>
		<ec:table items="studList"
			action="${pageContext.request.contextPath}/result.jsp"
			imagePath="${pageContext.request.contextPath}/images/table/*.gif"
			title="学员信息表" width="60%" rowsDisplayed="5">
			<ec:row>
				<ec:column property="stuName" />
				<ec:column property="address" />
				<ec:column property="stuPhone" />
			</ec:row>
		</ec:table>
	</body>
</html>

4、部署整个web工程到Tomcat下,启动Tomcat,在浏览器中输入:

http://localhost:8080/eXtremeDemo/result.jsp

至此,就可以在页面中看到从数据库中查询出来的数据,而且自动进行了分页显示,有上一页,下一页,首页,末页,这样给我们剩去了很多进行分页显示的代码,在不做其他考虑的情况下,使用该组件大大提高了工作的效率。

(只是一个举例,代码写得有点乱,重在了解如何使用该组件)

 

一个Java技术交流群,一起交流,共同进步,扣扣群号:513086638

 

 

 

3
2
分享到:
评论
6 楼 yangbobestone 2012-08-21  
不错。。。
5 楼 jelly_x 2011-12-29  
既然不是数据库分页,那该文章还有什么意义
4 楼 hnylj 2009-08-09  
kjj 写道
("select * from student")
请仔细看看那你这个是数据库分页吗,发这些不负责任的文章,误导初学者!!


这个是使用eXtremeComponents做分页的简单示例,该示例并不是数据库分页。
3 楼 kjj 2009-08-03  
("select * from student")
请仔细看看那你这个是数据库分页吗,发这些不负责任的文章,误导初学者!!
2 楼 hnylj 2008-11-28  
fxzjdtk 写道

如果大数据量(几万条数据),用select * from student就不行了,怎么解决?

数据分页有两种机制,一种是基于内存的分页,一种是基于数据库的分页。
当你数据量大的时候,解决办法只能自己写分页SQL,实现基于数据库的分页查询,因为大量的数据一次性查询,内存会吃不消。
同时我推荐你用ecside,这个比用eXtremeComponents功能更强大!
1 楼 fxzjdtk 2008-11-28  
如果大数据量(几万条数据),用select * from student就不行了,怎么解决?

相关推荐

    eXtremeComponents-1.0.1-with-dependencies

    "with-dependencies"暗示这个压缩包已经包含了运行"eXtremeComponents"所需的所有外部库,这样开发者在使用时就不必单独寻找并添加这些依赖,减少了配置的复杂性。 接下来,我们关注"eXtremeComponents"这个名字。...

    eXtremeComponents-1.0.2-M1.zip_COMPONENT_extremecomponents_extre

    标题中的"eXtremeComponents-1.0.2-M1.zip_COMPONENT_extremecomponents_extre"提到了一个名为eXtremeComponents的组件库,它是一个特定版本(1.0.2-M1)的软件包,可能包含了用于开发的控件或组件。...

    eXtremeComponents-1.0.1-with-dependencies.zip

    内附使用说明,亲身试验可行。极力推荐!...eXtremeComponents是提供更高级数据显示的开源JSP标签,用于以表格的形式来显示数据,它的功能强大且使用简单,常用的功能包括排序、分页、导出Excel与pdf等。

    eXtremeComponents-1.0.1+中文API___分页工具

    **eXtremeComponents-1.0.1+中文API 分页工具详解** 在软件开发中,尤其是在处理大量数据时,分页功能是必不可少的。它使得用户可以更有效地浏览和管理信息,避免一次性加载过多内容导致的性能问题。本文将深入探讨...

    eXtremeComponents控件分页导出数据Demo.rar

    《eXtremeComponents控件分页导出数据Demo详解》 在软件开发过程中,高效的数据展示和管理是至关重要的。eXtremeComponents控件系列以其强大的功能和灵活的定制性,在.NET平台上赢得了广大开发者的一致好评。尤其是...

    利用eXtremeComponents标签来实现分页实例

    总之,eXtremeComponents的`xe:pager`标签为Java Web开发者提供了一个简单且强大的分页解决方案。通过合理配置和绑定数据源,我们可以快速实现一个功能完善的分页系统。在实际开发中,可以根据项目需求进行定制,以...

    eXtremeComponents-1.0.4.zip

    extremetable标签是eXtremeComponents的核心组件,它允许开发者通过简单的标签语法实现动态、可定制的表格。与displaytag类似,extremetable支持分页、排序、过滤等功能,但其灵活性更高,可以更轻松地进行扩展和...

    分页组件extremeComponents的使用

    在实际使用中,开发者只需要配置好相应的数据库连接和SQL查询语句,XC分页组件会自动处理数据的分页和加载。 分页组件的主要功能包括: 1. **参数设置**:用户可以通过设置每页显示的记录数、当前页数等参数,控制...

    eXtremeComponents ( 开源 分页工具)

    **eXtremeComponents开源分页工具详解** 在IT领域,高效的数据管理是任何应用程序的基础。当处理大量数据时,分页技术变得至关重要,因为它能够提高用户体验,避免一次性加载过多数据导致的性能问题。...

    eXtremeComponents-1.0.3

    【eXtremeComponents-1.0.3】是一个软件组件包,它的出现是为了提供一套高效、易用的开发工具,以帮助程序员在构建应用程序时提高生产力和代码质量。这个版本1.0.3是该组件集合的一个稳定版本,用户反馈良好,表明它...

    eXtremeComponents-1.0.1.jar

    eXtremeComponents组件,导出Excel或pdf文件的jar包

    eXtremeComponents

    - **使用**:接着,通过引用库中的类、方法或接口来在自己的代码中使用eXtremeComponents的功能。 - **测试**:最后,进行单元测试和集成测试,确保与eXtremeComponents的交互按预期工作。 "ec"标签可能在使用该...

    extremecomponents

    在Java环境中,我们通常会使用JavaServer Faces (JSF) 或 JavaFX 这样的技术来配合extremecomponents。JSF是一种用于构建MVC(模型-视图-控制器)架构的Java Web框架,而JavaFX则提供了丰富的图形用户界面组件,两者...

    eXtremeComponents 源代码

    总的来说,eXtremeComponents源代码和.jar包为Java开发者提供了一套强大的组件工具箱,通过学习和使用这些组件,开发者可以更高效地开发出功能丰富、用户体验优秀的Java应用程序。同时,开源的特性也鼓励了社区的...

    eXtremeComponents-1[1].0.4-with-dependencies.zip

    XC的设计理念是模块化和可扩展性,这意味着开发者可以根据需要选择使用哪些组件,同时也可以方便地添加自定义组件或扩展已有组件。这种设计极大地提高了代码的复用性和项目的灵活性。 在实际开发中,使用...

    eXtremeComponents-1.0.4+extremetable使用手册+需要的jar包

    eXtremeTable分页控件完整例子包括了数据的分页、数据的Excel格式导出、数据的pdf电子书格式导出、数据的文本文件格式导出等功能,里面的源代码写得非常详细,好好看一下.... 功能强大,易于扩展的extremetable就是个...

    eXtremeComponents jar+doc+example

    总的来说,"eXtremeComponents jar+doc+example" 提供了一套完整的解决方案,涵盖了开发、理解和使用`ECTable`所需的全部资源。无论你是初次接触这个组件还是寻求增强已有项目的数据展示功能,这个资源包都能为你...

    eXtremeComponents-source

    基于以上信息,我们可以推测"eXtremeComponents-source"可能是一个用某种编程语言(如Java或C#)编写的组件库,用于创建桌面或Web应用程序的用户界面。这些组件可能包括按钮、表格、菜单、对话框等,旨在提高开发...

Global site tag (gtag.js) - Google Analytics