eXtremeComponents(简称 EC)是一个基于 Java Web(Struts/Spring MVC 等) 的 前端表格展示与交互组件库,主要用于快速在 JSP 页面中生成带分页、排序、导出、过滤等功能的动态表格。
这个库在 2000 年代中后期(Struts + JSP 盛行时代)非常流行。下面是它的完整指南与使用说明(适用于 Struts / Spring MVC 环境)。
🧩 一、eXtremeComponents 简介
eXtremeComponents 是一个基于 JSP 标签库(Taglib)的表格渲染组件。
它提供以下常用功能:
- 自动分页(支持数据库分页和内存分页)
- 自动排序(ASC / DESC)
- 导出(Excel、CSV、PDF)
- 支持国际化(i18n)
- 支持样式自定义(CSS、模板)
- 与 MVC 框架无缝集成(Struts、Spring MVC)
官方网站(已停止维护)曾是:
⚙️ 二、环境配置
- 导入 JAR 包
需要的核心库:
eXtremeComponents.jar
commons-beanutils.jar
commons-collections.jar
commons-lang.jar
commons-logging.jar
poi.jar (用于导出Excel)
- 在 JSP 中引入标签库
<%@ taglib uri="http://www.extremecomponents.org" prefix="ec" %>
- 配置 web.xml
<context-param>
<param-name>extremecomponentsPreferences</param-name>
<param-value>/WEB-INF/extremecomponents.properties</param-value>
</context-param>
📄 三、基本使用示例
示例:显示用户列表
JSP 页面(users.jsp)
<%@ taglib uri="http://www.extremecomponents.org" prefix="ec" %>
<ec:table
items="${userList}"
var="user"
tableId="userTable"
rowsDisplayed="10"
filterable="true"
sortable="true"
export="true">
<ec:row>
<ec:column property="id" title="用户ID" sortable="true"/>
<ec:column property="username" title="用户名" filterable="true"/>
<ec:column property="email" title="电子邮件"/>
<ec:column property="registerDate" title="注册时间" format="yyyy-MM-dd"/>
</ec:row>
</ec:table>
🔄 四、分页与排序
1️⃣ 内存分页
直接在 items
中传入完整集合(如 List),由 EC 自动分页。
2️⃣ 数据库分页
在控制器中根据 EC 提供的参数自行分页。
Limit limit = RequestUtils.getLimit(request, "userTable");
int totalRows = userService.countUsers();
List<User> users = userService.findUsers(limit.getRowStart(), limit.getRowEnd());
request.setAttribute("userList", users);
📤 五、导出功能(Excel / CSV / PDF)
只需开启:
<ec:table export="true">
导出链接会自动显示在表格下方。
默认支持三种导出格式:
- Excel:
.xls
- CSV:
.csv
- PDF:
.pdf
可以在 extremecomponents.properties
中配置导出路径和样式。
🧾 六、配置文件 extremecomponents.properties
示例内容:
# 每页行数
rowsDisplayed=10
# 导出目录
export.excel.file=export.xls
export.csv.file=export.csv
# 日期格式
format.date=yyyy-MM-dd
🎨 七、自定义样式与模板
可通过 JSP 自定义样式:
<ec:table styleClass="table table-striped table-hover" theme="bootstrap">
还可以在 extremecomponents.properties
中指定主题模板文件:
theme=org.extremecomponents.table.view.html.CleanHtmlView
🧠 八、常见问题
问题 | 原因与解决 |
---|---|
中文导出乱码 | 修改 encoding=GBK 或使用 UTF-8 导出 |
分页失效 | 确认 tableId 唯一;控制器中未读取分页参数 |
未显示数据 | items 传入的 List 为空或命名错误 |
无法导出 PDF | 缺少 iText.jar 或 poi.jar 版本不兼容 |
🧭 九、现代替代方案
eXtremeComponents 已多年不维护。
如果你在做新项目,建议使用以下现代替代品:
技术 | 框架类型 | 说明 |
---|---|---|
Thymeleaf + Datatables | Spring Boot | 现代化模板与JS分页结合 |
Vue + Element Plus | 前后端分离 | 功能更强、样式更美观 |
Spring Boot + EasyUI | Java Web | 类似思想,维护更活跃 |
发表回复