<%@taglib uri="/WEB-INF/extremecomponents" prefix="ec"%>
http://blog.csdn.net/hobbypei/article/details/6722488
说的非常详细,自己写下,备忘以后用
<form method="post" name="technicianFrm" action="<%= path%>/queryDeveloperList.action">
<div id="list_menu" >
<div class="nav1">
<div class="left">机构:<input name="" type="text" size="10" height="25" /> 关键字:<input name="" type="text" size="20" height="25"/> </div>
<div class="right"><input name="serch" onClick=""type="image" src="<%=path %>/appstar/manage/images/serch2.png"><input name="and" onClick=""type="image" src="<%=path %>/appstar/manage/images/and.png">
</div>
</div>
</div>
<!-- sortable,filterable,rowsDisplayed 可以在extremetable.properties统一设置 -->
<table width="98%" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td>
<ec:table cellspacing="0" cellpadding="0" border="0"
action="${pageContext.request.contextPath}/queryDeveloperList.action"
items="allUserList"
var="arr"
imagePath="${pageContext.request.contextPath}/appstar/manage/images/table/*.gif"
width="100%" rowsDisplayed="10" form="technicianFrm"
sortable="true"
filterable="true"
>
<ec:exportCsv fileName="DepositHistory.csv" tooltip="CSV Download" />
<ec:exportXls fileName="listuser.xls" tooltip="Export Excel"/>
<ec:row>
<ec:column property="id" cell="rowCount" title="序号" />
<ec:column property="userId" title="userId"></ec:column>
<ec:column property="menuNo" title="MenuNo"></ec:column>
</ec:row>
</ec:table>
</td>
</tr>
</table>
</form>
如果数据量大,需要分页,需要这个类
ExtremeTablePage
/**
* ExtremeTablePage.java
* com.zte.appstar.manage.util
*
* Function: TODO
*
* ver date author
* ──────────────────────────────────
* Aug 6, 2012 程仁银
*
* Copyright (c) 2012, All Rights Reserved.
*/
package com.zte.appstar.manage.util;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import org.extremecomponents.table.context.Context;
import org.extremecomponents.table.context.HttpServletRequestContext;
import org.extremecomponents.table.limit.Limit;
import org.extremecomponents.table.limit.LimitFactory;
import org.extremecomponents.table.limit.Sort;
import org.extremecomponents.table.limit.TableLimit;
import org.extremecomponents.table.limit.TableLimitFactory;
/**
* ClassName:ExtremeTablePage
* Project:
* Company: ZTE
*
* @author 程仁银
* @version
* @since Ver 1.1
* @Date Aug 6, 2012 11:30:08 AM
* @see
*/
@SuppressWarnings("unchecked")
public final class ExtremeTablePage {
/**
* 最大记录数.
*/
public static final int MAX_PAGE_SIZE = 1000000000;
public static final int defaultPageSize = 10;
/**
* 工具类的私有构造方法.
*/
private ExtremeTablePage() {
}
/**
* 根据DEFAULT_PAGE_SIZE获得数据.
*
* @param request 请求
* @return Limit 封装的数据
*/
public static Limit getLimit(HttpServletRequest request) {
return getLimit(request, defaultPageSize);
}
/**
* 从request构造Limit对象实例.
* Limit的构造流程比较不合理,为了照顾export Excel时忽略信息分页,导出全部数据
* 因此流程为程序先获得total count, 再使用total count 构造Limit,再使用limit中的分页数据查询分页数据
* 而SS的page函数是在同一步的,无法拆分,再考虑到首先获得的totalCount
*
* @param request 请求
* @param defaultPageSize 页面记录数
* @return Limit 封装的数据
*/
public static Limit getLimit(HttpServletRequest request,
int defaultPageSize) {
Context context = new HttpServletRequestContext(request);
LimitFactory limitFactory = new TableLimitFactory(context);
TableLimit limit = new TableLimit(limitFactory);
limit.setRowAttributes(MAX_PAGE_SIZE, defaultPageSize);
return limit;
}
/**
* 将Limit中的排序信息转化为Map{columnName,升序/降序}.
* @param limit 封装的页面信息
* @return Map 排序信息
*/
public static Map getSort(Limit limit) {
Map sortMap = new HashMap();
if (limit != null) {
Sort sort = limit.getSort();
if ((sort != null) && sort.isSorted()) {
sortMap.put(sort.getProperty(), sort.getSortOrder());
}
}
return sortMap;
}}
public String queryDeveloperList()
{
System.out.println("############# queryDeveloperList #############");
Limit limit = ExtremeTablePage.getLimit(ServletActionContext.getRequest(),10);
System.out.println("limit = "+limit);
org.extremecomponents.table.limit.TableLimit@f7821d[rowStart=20,rowEnd=30,currentRowsDisplayed=10,page=3,totalRows=1000000000,exported=false,sort=org.extremecomponents.table.limit.Sort@17f7bf6[alias=<null>,property=<null>,sortOrder=<null>],filterSet=org.extremecomponents.table.limit.FilterSet@a37512[action=<null>]]
public String queryDeveloperList()
{
System.out.println("############# queryDeveloperList #############");
Limit limit = ExtremeTablePage.getLimit(ServletActionContext.getRequest(),10);
Sort sort = limit.getSort();
String columnSort = sort.getProperty();
System.out.println("limit = "+limit);
Map<String,Object> param1 = new HashMap<String,Object>();
param1.put("eq,userId", "superstar");
System.out.println("sort.getSortOrder() = "+sort.getSortOrder());
if(sort.getSortOrder()!=null){
param1.put("order,"+columnSort,sort.getSortOrder());
}
for(Filter f:limit.getFilterSet().getFilters())
{
System.out.println(f.getProperty()+" "+f.getValue());
param1.put("like,"+f.getProperty(),f.getValue());
}
List<UserPowerT> countList1 = this.userManageService.getObjListByParameter(UserPowerT.class, param1);
Map<String,Object> param2 = new HashMap<String,Object>();
param2.put("eq,userId", "superstar");
if(sort.getSortOrder()!=null){
param2.put("order,"+columnSort,sort.getSortOrder());
}
for(Filter f:limit.getFilterSet().getFilters())
{
System.out.println(f.getProperty()+" "+f.getValue());
param2.put("like,"+f.getProperty(),f.getValue());
}
List<UserPowerT> countList2 = this.userManageService.getListByPage(UserPowerT.class, param2,(limit.getPage()-1)*limit.getCurrentRowsDisplayed(),limit.getCurrentRowsDisplayed());
/*List<UserPowerT> allUserList = this.userManageService.queryUserListDemo(limit.getPage(),limit.getCurrentRowsDisplayed(),"superstar",columnSort,sortOrder);*/
ServletActionContext.getRequest().setAttribute("allUserList",countList2);
ServletActionContext.getRequest().setAttribute("totalRows",countList1.size());
return SUCCESS;
}
- 大小: 66.2 KB
分享到:
相关推荐
**分页组件Extreme Components在Java开发中的应用** 在Java Web开发中,数据量庞大的时候,一次性加载所有数据不仅效率低下,也会对用户界面造成压力。这时,分页组件就显得尤为重要。Extreme Components(简称XC)...
《eXtremeComponents控件分页导出数据Demo详解》 在软件开发过程中,高效的数据展示和管理是至关重要的。eXtremeComponents控件系列以其强大的功能和灵活的定制性,在.NET平台上赢得了广大开发者的一致好评。尤其是...
本教程将详细介绍如何利用eXtremeComponents(XC)标签库中的组件来实现一个分页实例。eXtremeComponents是一个强大的JavaServer Faces (JSF)组件库,提供了丰富的UI元素,包括用于分页的组件。 首先,我们需要了解...
eXtremeComponents适用于各种需要分页展示大量数据的场景,如电商网站的商品列表、社交媒体的动态流、企业内部的报表系统等。无论是在Web应用还是桌面应用中,它都能提供出色的分页体验。 总的来说,...
在实际应用中,分页工具可以广泛应用于各种数据展示场景,例如报表、数据库查询结果、商品列表等。通过eXtremeComponents的分页功能,开发者可以轻松实现高效的数据管理,同时保证用户界面的流畅和友好。 总结起来...
在extremecomponents库中,可能包括如DataGrid、ListView或者TreeGrid等控件,它们能够以表格、列表或树形结构展示数据,并支持排序、分页、过滤等功能。 在Java环境中,我们通常会使用JavaServer Faces (JSF) 或 ...
"extreme 列表组件"是eXtremeComponents中的核心部分,它通常指的是能够高效处理大量数据,并提供动态排序、筛选、分页等功能的列表视图。这类组件对于数据密集型应用,如数据分析工具、数据库管理软件或者任何需要...
eXtremeComponents(简称EC)是一款专为Java开发者设计的开源组件库,它提供了一系列强大的列表展示组件,适用于构建数据密集型的应用程序。EC的核心特性包括支持分页显示、数据导出到Excel和PDF等格式,极大地提升...
综合以上信息,我们可以推测eXtremeComponents是一个专注于数据分页查询的UI组件库,适用于Web应用开发。它可能提供了易于集成的分页控件,支持自定义配置,如每页显示的记录数,以及可能包含了一些示例或文档(如...
- **分页**: 支持分页功能,通过 `pageSize` 和 `currentPage` 控制每页显示的记录数及当前页。 - **表头**: 通过 `header` 属性自定义表头。 ##### 3.8 扩展属性 - **数据绑定**: 支持多种数据源类型,如数组、...
1. `items`:定义表格的数据源,通常是一个列表或集合。 2. `var`:定义一个变量名,用于在表格内部访问当前行的数据。 3. `columns`:定义表格的列,可以通过子标签`<ec:column>`来设置列头文本、字段映射等。 4. `...
1. **表格组件**:EC提供了高度可定制的表格组件,支持大数据量的展示,具有排序、分页、过滤等功能,并且可以方便地与后台数据库进行交互。 2. **表单组件**:包括各种输入控件,如文本框、下拉列表、日期选择器等...
此文档可能会讨论表格的列定义、排序、过滤、分页等功能,以及如何处理数据模型和事件监听器,以实现动态数据更新和用户交互。 4. **EC标签总结.pdf** 标签可能是指EC中的标签组件或者其他与标记和分类相关的功能...
为了确保在大量数据或复杂交互场景下的高性能,文档还会讲解如何优化组件的性能,如延迟加载、分页策略和虚拟滚动等技术。 7. **国际化与多语言支持** 作为一套全球化的组件库,extremeComponents 提供了多语言...
本教程将详细讲解如何利用Extremecomponents来实现分页、导出Excel(XLS)以及表格排序等功能。 首先,我们要了解分页在Web应用中的重要性。在处理大量数据时,分页可以提高用户体验,避免一次性加载所有数据导致...
eXtremeTable分页控件完整例子包括了数据的分页、数据的Excel格式导出、数据的pdf电子书格式导出、数据的文本文件格式导出等功能,里面的源代码写得非常详细,好好看一下.... 功能强大,易于扩展的extremetable就是个...
- `ec:table`标签是核心,`items`属性绑定到包含数据的列表,`action`定义了处理请求的后台方法,`var`变量用于在JSP内部引用单个数据项。 - `ec:column`标签定义列,`property`指定了数据项的字段名,`title`是列头...
6. **性能与优化**:讨论在大量数据或高并发场景下如何优化 ExtremeComponents 的性能,可能包括数据分页、异步加载、内存管理等内容。 7. **问题解决**:提供常见问题的解决方案,帮助开发者在遇到问题时迅速找到...