eXtremeTable使用View接口来生成HTML。你可以使用发行包已经提供的视图,或者你可以插入自己的视图实现。 现在,创建你自己的视图相对比较简单,但讨论一些设计想法和如何着手实现一个定制的视图还是有价值的。
我想使创建定制视图简单,但不是想构造一个更复杂的类似swing的模型,原因是那需要创建大量的对象来处理对应的内部工作。 eXtremeTable以高效为目标,我也想在视图的实现上贯彻这种想法,所以我决定创建一系列的静态构造器类来实现分解的最小功能。你可以通过组合这些功能来实现你的定制视图。
学习定制视图的最好途径是阅读已经存在的视图的源代码,修改它来满足你的需求。如果我示范所有东西的话,这篇指南将变的非常冗长。取而代之的是我将直接修改默认视图的工具条作为定制视图的一个示例。 对于不同构造器的具体细节我建议你阅读源代码。我也将尽量更新javadocs来提供更好的帮助。
1.1. View接口
实现View接口的类有3次插入内容的机会。 beforeBody()方法会被立刻调用,body()方法在每一行的每一列处理的时候调用。 afterBody()方法是被eXtremeTable调用的最后方法,它将返回代表视图的一个对象。在这个HTML视图示例里,它将是一个字符串。
public interface View {
public void beforeBody(TableModel model);
public void body(TableModel model, Column column);
public Object afterBody(TableModel model);
}
1.2. Messages示例
在这篇指南里我将直接修改工具条来实现这网站上Messages示例的定制视图。
public class MessagesView extends AbstractHtmlView {
protected void toolbar(TableModel model) {
TwoColumnTableLayout toolbar = new MessagesToolbar();
toolbar.layout(getHtmlBuilder(), model);
}
protected void statusBar(TableModel model) {
TwoColumnRowLayout statusBar = new MessagesStatusBar();
statusBar.layout(getHtmlBuilder(), model);
}
}
这里使用的是默认视图,因此它扩展了虚拟视图来修改工具条和状态条。如何修改工具条和(或)状态条也是开发人员问的最多问题。
默认视图的工具条位于表的上方包括翻页链接和标题。工具条使用TwoColumnTableLayout,它是一个用于提供在自己表中实现左右两列布局的虚拟类。它将实现能够浮在表上方的完美布局。下面就是你需要关心的虚拟方法,在实际的html视图中已经为你完成了这个布局。
public abstract class TwoColumnTableLayout {
protected abstract boolean showLayout(TableModel model);
protected abstract void columnLeft(HtmlBuilder html, TableModel model);
protected abstract void columnRight(HtmlBuilder html, TableModel model);
}
showLayout()方法用来阻止或导致布局的展现。在我的定制视图中如果翻页或(和)导出显示那么工具条将展现。
protected boolean showLayout(TableModel model) {
boolean showPagination = BuilderUtils.showPagination(model);
boolean showExports = BuilderUtils.showExports(model);
if (!showPagination && !showExports) {
return false;
}
return true;
}
下面显示了左列和右列的部分代码。注意在我的定制视图中首页和前一页使用了文字来替代图片显示。我真正希望示范的是你需要做的:找到正确的构造器类并且仅仅是扩展HtmlBuilder的标签。构造器类对于示范如何找到模型里的信息(以便你能够做比他们能够提供的更多的定制工作)也非常有用,。
protected void columnLeft(HtmlBuilder html, TableModel model) {
html.td(2).close();
TableBuilder.title(html, model);
html.tdEnd();
}
protected void columnRight(HtmlBuilder html, TableModel model) {
boolean showPagination = BuilderUtils.showPagination(model);
...
if (showPagination) {
html.td(4).close();
ToolbarBuilder.firstPageItemAsText(html, model);
html.tdEnd();
html.td(4).close();
ToolbarBuilder.prevPageItemAsText(html, model);
html.tdEnd();
...
}
...
}
为了使用这个视图你需要在Preferences定义一个别名。 你可以省略这部而在JSP直接给出这个视图的完整有效的类名,不过Preferences更为简洁。
table.view.messages=org.extremesite.view.MessagesView
TableTag也将设置视图属性来使用MessagesView视图。
<ec:table view="messages">
如果不清楚Preferences和TableTag定义语法请参考Preferences指南。
Retrieved from "http://extremecomponents.org/wiki/index.php/Simplified_Chinese_Tutorials_HtmlViewCustom"
分享到:
相关推荐
### eXtremeTable使用指南:深入理解与配置 #### 引言 eXtremeTable作为eXtremeComponents系列中的核心组件之一,专为高级数据展示而设计,尤其适用于表格形式的数据呈现。该开源项目由Jeff Johnston领导的ECCN...
1. **什么是eXtremeTable:** - eXtremeTable是一个基于jQuery的表格插件,它支持动态数据加载、分页、排序、搜索、编辑、导入和导出等丰富的功能。 - 该组件不仅支持基本的表格显示,还提供工具来增强表格的交互...
这个压缩包“eXtremeTable的使用方法.rar”显然包含了关于如何有效利用eXtremeTable的相关指南,特别是通过包含的CHM文件“2008821161857.chm”,我们可以期待找到详细的文档和教程。 eXtremeTable的主要特点包括:...
根据提供的文档部分内容,我们可以推断出这是一篇关于 eXtremeTable 的中文文档,主要涉及该工具或系统的使用、配置以及相关技术细节。虽然原始文本包含大量的特殊字符和不可读部分,但仍然可以从其中提取出一些关键...
我也刚开始看,感觉是个好东东,大家多多交流
《eXtremeTable参考文档》是针对eXtremeComponents中的一款核心组件——eXtremeTable的详细指南。eXtremeComponents是一个开源项目,它为JavaServer Pages (JSP) 开发者提供了丰富的定制标签库,使得在Web应用开发中...
eXtremeTable是一款强大的开源JSP定制标签库,主要用于在Web应用中以表格形式展示数据。本教程详细介绍了eXtremeTable的配置、使用方法以及各种标签的功能,旨在帮助开发者充分利用其功能,实现高效、灵活的数据展示...
**eXtremeTable** 是一个专为Java Web开发设计的高效、易用的表格控件,它在处理大量数据时表现出色,尤其在数据分页和导出...对于从事Java Web开发的人员来说,掌握eXtremeTable的使用无疑是提升项目质量的有效途径。
这篇博客文章将带你深入了解 ExtremeTable 的核心特性和应用场景,同时提供了一份详细的用户指南——《eXtremeComponentsCN.pdf》,帮助开发者更好地理解和运用这个工具。 首先, ExtremeTable 的主要特点是其高效...
### extremeTable:强大的数据展示工具 #### 一、概述 **extremeTable**是一款开源的JSP自定义标签库,其主要功能是通过表格形式来高效地展示数据。这款工具的最新版本为1.0.1-M1。作为一款类似于`displaytag`和`...
eXtremeTable文档 eXtremeTable文档 eXtremeTable文档 eXtremeTable文档 eXtremeTable文档 eXtremeTable文档
eXtremeTable分页控件完整例子包括了数据的分页、数据的Excel格式导出、数据的pdf电子书格式导出、数据的文本文件格式导出等功能,里面的源代码写得非常详细,好好看一下.... 功能强大,易于扩展的extremetable就是个...
本教程将详细讲解如何使用Hibernate ORM框架结合ExtremeTable实现高效的分页查询。 Hibernate是一个强大的对象关系映射(ORM)框架,它允许开发者以面向对象的方式处理数据库操作,避免了直接编写SQL语句的繁琐。而...
- 在JSP文件中使用以下代码引入eXtremeTable: ```jsp <%@ taglib uri="http://www.extremecomponents.org" prefix="ec" %> ``` 6. **配置CSS样式**: - 将`extremecomponents.css`文件复制到项目的CSS文件夹中...
displayTag,extremeTable相关文章
在 JSP 页面中,通过以下方式引入 eXtremeTable: - 如果容器支持自动发现 TLD,使用:`<%@ taglib uri="http://www.extremecomponents.org" prefix="ec" %>` - 否则,手动指定 TLD 位置,使用:`...