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)

官方网站(已停止维护)曾是:

http://extremecomponents.org/


⚙️ 二、环境配置

  1. 导入 JAR 包

需要的核心库:

eXtremeComponents.jar
commons-beanutils.jar
commons-collections.jar
commons-lang.jar
commons-logging.jar
poi.jar  (用于导出Excel)

  1. 在 JSP 中引入标签库
<%@ taglib uri="http://www.extremecomponents.org" prefix="ec" %>

  1. 配置 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 + DatatablesSpring Boot现代化模板与JS分页结合
Vue + Element Plus前后端分离功能更强、样式更美观
Spring Boot + EasyUIJava Web类似思想,维护更活跃