幸せのちから

          平凡的世界
          看似平常實崎嶇
          成如容易卻艱辛

          攔截器使用指南

          攔截器使用指南

          攔截器使用指南


          1. 引言

          攔截特性被用在運行時需要修改屬性值的時候,它使得改變基于數(shù)據(jù)的eXtremeTable的行為成為可能。在閱讀擴(kuò)展標(biāo)簽屬性時,你會發(fā)現(xiàn)它和擴(kuò)展標(biāo)簽屬性具有同樣的概念和方法標(biāo)識。 區(qū)分使用他們的首要準(zhǔn)則是:如果需要向TLD里已經(jīng)定義的并且能夠在JSP中訪問的標(biāo)簽添加新的屬性時,應(yīng)該使用擴(kuò)展標(biāo)簽屬性;如果僅僅是需要修改已經(jīng)定義好的屬性的值的時候,應(yīng)該使用攔截器。

          你可能需要了解更多的eXtremeTable如何運作的技術(shù)背景才能完全理解這種特性。 eXtremeTable首先做的就是遍歷所有標(biāo)簽并創(chuàng)建對應(yīng)的模型beans (pojos)。beans是具有和標(biāo)簽一樣屬性,但是使用真實類型來替換僅僅使用字符串類型的對象。beans是被模型使用并且是你需要使用攔截特性修改的對象。 所有的攔截器接口都定義了一個add方法, add方法被用來處理模型bean第一次創(chuàng)建時的屬性。行和列的攔截器還有一個modify 方法。modify方法可以在當(dāng)行和類進(jìn)行處理是對屬性值進(jìn)行操作。

          1.1. 攔截器列表

          下面列出了具有攔截特性的標(biāo)簽和他們需要被實現(xiàn)的接口,Bean欄顯示了被模型創(chuàng)建的Bean。

          標(biāo)簽接口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. 行攔截器示例

          示范攔截特性的完美示例就是根據(jù)一定的標(biāo)準(zhǔn)來對行進(jìn)行高亮顯示,這也是我們將要完成的示例。它很短也很簡單,不過它實現(xiàn)的概念同樣適用于每一個攔截器接口。

          我們需要做的第一件事就是實現(xiàn)InterceptRow接口。你會注意到這個接口有兩個方法:addRowAttributes() 和modifyRowAttributes()。addRowAttributes方法在行bean創(chuàng)建的時候被調(diào)用, modifyRowAttributes方法在表處理當(dāng)前頁面行的時候被調(diào)用。

          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里你應(yīng)該定義這個行攔截器的別名。

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

          這樣就可以在行標(biāo)簽中使用攔截器MarkerIntercept了。

          <ec:row intercept="marker">

          如果不清楚Preferences和TableTag定義語法請參考Preferences指南。

          posted on 2006-02-19 11:12 Lucky 閱讀(652) 評論(0)  編輯  收藏 所屬分類: extremeComponents

          <2006年2月>
          2930311234
          567891011
          12131415161718
          19202122232425
          2627281234
          567891011

          導(dǎo)航

          隨筆分類(125)

          文章分類(5)

          日本語

          搜索

          積分與排名

          最新隨筆

          最新評論

          主站蜘蛛池模板: 泸西县| 烟台市| 屏南县| 宣化县| 永平县| 南昌市| 民丰县| 南开区| 大田县| 名山县| 吴川市| 昂仁县| 牟定县| 兴仁县| 北海市| 齐河县| 东丽区| 宕昌县| 揭西县| 桦川县| 崇仁县| 麻阳| 阳朔县| 昌乐县| 鞍山市| 托克逊县| 揭阳市| 通州区| 昭通市| 乾安县| 黔西县| 句容市| 广水市| 江孜县| 元氏县| 郓城县| 文昌市| 富源县| 平武县| 喜德县| 九龙县|