为了设置全局属性和设置,你需要使用Preferences特性,它现在使用一个属性文件来实现。本文档将很好地介绍如何在web.xml里设置Preferences,
以及一些需要被定义的通用属性。在这里我非常乐意介绍一些关于Preferences的进一步用法。
所有标签属性表示一个可插接的接口,它可以通过给出实现的全路径来设置。这为插接实现提供了一条便利的途径。当然这存在一些为过长术语的设计和维护的考虑。
第一,对你的接口实现进行硬编码;第二,如果你需要在别的JSP中用到同一个接口实现,你需要拷贝你全路径。解决这两个问题的有效办法就是在Preferences中声明一切。
下面列出的是可以在Preferences中申明的所有接口。Tag列展示的是eXtremeTable的标签,Attribute
列展示的是相关标签的对应属性。Interface列展示的是需要被实现的Java接口。Preference Key列展示的是
Preferences里对应的健。
提示:当在写作本指南的时候,我意识到我忘记了让标签ColumnsTag的autoGenerateColumns
属性和Preferences协同工作。这将在下一版修正。
上表展示了如何声明preference键,但是没有解释如何指定有意义的别名。如果你注意到preference键提供了一致的语法
tag.attribute,指定键的别名仅仅是在它的基础上进行扩展。它的语法为:
tag.attribute.alias。
eXtremeTable提供了一个名为RowCountCell定制的cell,它的作用是现实当前的行数。我将在Preferences里使用ColumnTag
cell声明来示范RowCountCell的使用。
首先通过实现Cell接口或者扩展AbstractCell来编写具体的实现类。
public class RowCountCell extends AbstractCell {
protected String getCellValue(TableModel model, Column column) {
int rowcount = ((model.getLimit().getPage() - 1)
* model.getLimit().getCurrentRowsDisplayed())
+ model.getRowHandler().getRow().getRowCount();
return String.valueOf(rowcount);
}
}
然后在Preferences
(属性文件)进行声明并给出别名。eXtremeTable在一个Preferences里保存所有的配置信息,你可以通过使用本地
Preferences的来覆盖任何的这些属性。
RowCountCell默认的别名是rowCount:
column.cell.rowCount=org.extremecomponents.table.cell.RowCountCell
在ColumnTag中通过别名引用Cell:
<ec:column alias="count" cell="rowCount"/>
现在你可以通过rowCount来引用这个Cell,如果包名改变了你只需要对Preferences进行修改。
提示:本示例中我使用了ColumnTag的别名属性。别名属性应用在有两列使用同样的property,也应用在列不直接和列的
bean property关联的情况下。本示例就属于这种情况。