幸せのちから

平凡的世界
看似平常实崎岖
成如容易却艰辛

拦截器使用指南

拦截器使用指南

拦截器使用指南


1. 引言

拦截特性被用在运行时需要修改属性值的时候,它使得改变基于数据的eXtremeTable的行为成为可能。在阅读扩展标签属性时,你会发现它和扩展标签属性具有同样的概念和方法标识。 区分使用他们的首要准则是:如果需要向TLD里已经定义的并且能够在JSP中访问的标签添加新的属性时,应该使用扩展标签属性;如果仅仅是需要修改已经定义好的属性的值的时候,应该使用拦截器。

你可能需要了解更多的eXtremeTable如何运作的技术背景才能完全理解这种特性。 eXtremeTable首先做的就是遍历所有标签并创建对应的模型beans (pojos)。beans是具有和标签一样属性,但是使用真实类型来替换仅仅使用字符串类型的对象。beans是被模型使用并且是你需要使用拦截特性修改的对象。 所有的拦截器接口都定义了一个add方法, add方法被用来处理模型bean第一次创建时的属性。行和列的拦截器还有一个modify 方法。modify方法可以在当行和类进行处理是对属性值进行操作。

1.1. 拦截器列表

下面列出了具有拦截特性的标签和他们需要被实现的接口,Bean栏显示了被模型创建的Bean。

标签接口Bean
TableTagorg.extremecomponents.table.intercept.InterceptTableorg.extremecomponents.table.bean.Table
RowTagorg.extremecomponents.table.intercept.InterceptRoworg.extremecomponents.table.bean.Row
ColumnTagorg.extremecomponents.table.intercept.InterceptColumnorg.extremecomponents.table.bean.Column
ExportTagorg.extremecomponents.table.intercept.InterceptExportorg.extremecomponents.table.bean.Export

1.2. 行拦截器示例

示范拦截特性的完美示例就是根据一定的标准来对行进行高亮显示,这也是我们将要完成的示例。它很短也很简单,不过它实现的概念同样适用于每一个拦截器接口。

我们需要做的第一件事就是实现InterceptRow接口。你会注意到这个接口有两个方法:addRowAttributes() 和modifyRowAttributes()。addRowAttributes方法在行bean创建的时候被调用, modifyRowAttributes方法在表处理当前页面行的时候被调用。

public class MarkerIntercept implements InterceptRow {
public void addRowAttributes(TableModel tableModel, Row row) {
}

public void modifyRowAttributes(TableModel model, Row row) {
President president = (President) model.getCurrentRowBean();
String career = president.getCareer();
if (StringUtils.contains(career, "Soldier")) {
row.setStyle("background-color:#fdffc0;");
} else {
row.setStyle("");
}
}
}

在Preferences里你应该定义这个行拦截器的别名。

row.intercept.marker=org.extremesite.intercept.MarkerIntercept

这样就可以在行标签中使用拦截器MarkerIntercept了。

<ec:row intercept="marker">

如果不清楚Preferences和TableTag定义语法请参考Preferences指南。

posted on 2006-02-19 11:12 Lucky 阅读(645) 评论(0)  编辑  收藏 所属分类: extremeComponents


只有注册用户登录后才能发表评论。


网站导航:
 
<2006年2月>
2930311234
567891011
12131415161718
19202122232425
2627281234
567891011

导航

随笔分类(125)

文章分类(5)

日本語

搜索

积分与排名

最新随笔

最新评论