|
Preferences 指南 |
来源:转载 人气:1880 录入时间:2007-11-8 |
1. 引言
为了设置全局属性和设置,你需要使用Preferences特性,它现在使用一个属性文件来实现。本文档将很好地介绍如何在web.xml里设置Preferences, 以及一些需要被定义的通用属性。在这里我非常乐意介绍一些关于Preferences的进一步用法。
所有标签属性表示一个可插接的接口,它可以通过给出实现的全路径来设置。这为插接实现提供了一条便利的途径。当然这存在一些为过长术语的设计和维护的考虑。 第一,对你的接口实现进行硬编码;第二,如果你需要在别的JSP中用到同一个接口实现,你需要拷贝你全路径。解决这两个问题的有效办法就是在Preferences中声明一切。
1.1. Preferences表下面列出的是可以在Preferences中申明的所有接口。Tag列展示的是eXtremeTable的标签,Attribute 列展示的是相关标签的对应属性。Interface列展示的是需要被实现的Java接口。Preference Key列展示的是 Preferences里对应的健。
Tag Attribute Interface Preference Key
TableTag filterRowsCallback org.extremecomponents.table.callback.FilterRowsCallback table.filterRowsCallback
TableTag intercept org.extremecomponents.table.intercept.InterceptTable table.intercept
TableTag retrieveRowsCallback org.extremecomponents.table.callback.RetrieveRowsCallback table.retrieveRowsCallback
TableTag sortRowsCallback org.extremecomponents.table.callback.SortRowsCallback table.sortRowsCallback
TableTag state org.extremecomponents.table.state.State table.state
TableTag view org.extremecomponents.table.view.View table.view
RowTag intercept org.extremecomponents.table.intercept.InterceptRow row.intercept
ColumnTag calc org.extremecomponents.table.calc.Calc column.calc
ColumnTag cell org.extremecomponents.table.cell.Cell column.cell
ColumnTag filterCell org.extremecomponents.table.cell.Cell column.filterCell
ColumnTag headerCell org.extremecomponents.table.cell.Cell column.headerCell
ColumnTag intercept org.extremecomponents.table.intercept.InterceptColumn column.intercept
ExportTag intercept org.extremecomponents.table.intercept.InterceptExport export.intercept
ExportTag view org.extremecomponents.table.view.View export.view
ExportTag viewResolver org.extremecomponents.table.filter.ViewResolver export.viewResolver
提示:当在写作本指南的时候,我意识到我忘记了让标签ColumnsTag的autoGenerateColumns 属性和Preferences协同工作。这将在下一版修正。
1.2. 指定Preference别名上表展示了如何声明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关联的情况下。本示例就属于这种情况。
|
|
|