幸せのちから

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

          Chapter 8. Callbacks

          Chapter 8. Callbacks

          8.1. 引言

          Callbacks被用于重新得到(retrieve)、過濾和排序行數據。eXtremeTable為每個callback提供了一個定制實現。 首先,載入所有的元數據,元數據為所有eXtremeTable標簽的所有屬性;接著在eXtremeTable的model中調用 execute方法。eXtremeTable使用execute方法決定如何通過調用每個callback的接口來重新得到、過濾和排序行數據。 這三個callback的接口是:RetrieveRowsCallback、FilterRowsCallback和SortRowsCallback。

          callbacks為singleton并且不是線程安全的,因此不要定義任何類變量。

          8.2. RetrieveRowsCallback

          RetrieveRowsCallback的默認實現在servlet范圍內尋找具有名稱和TableTag 的items屬性設置相同的Beans集合。為了使用定制的callback,只要實現RetrieveRowsCallback接口, 然后使用retrieveRowsCallback屬性來指定實現類的全路徑:

          <ec:table
          var="pres"
          action="${pageContext.request.contextPath}/presidents.run"
          retrieveRowsCallback="com.mycompany.callback.MyCustomCallback"
          />

          RetrieveRowsCallback接口如下所示:

          public interface RetrieveRowsCallback {
          public Collection retrieveRows(TableModel model) throws Exception;
          }

          只有一個方法需要實現,傳入TableModel并返回一個集合,集合為Beans或Maps集合。 通過得到TableModel,就擁有了TableTag的所有元數據并能訪問Context。能夠訪問Context非常重要, 這意味著你訪問web容器的任何東西。

          8.3. FilterRowsCallback

          FilterRowsCallback的默認實現得到Beans集合,通過實現jakarta Predicate接口進行過濾, 過濾值從eXtremeTable的filter輸入框中取得。為了使用定制的callback,只要實現FilterRowsCallback接口, 然后使用filterRowsCallback屬性來指定實現類的全路徑:

          <ec:table
          var="pres"
          action="${pageContext.request.contextPath}/presidents.run"
          filterRowsCallback="com.mycompany.callback.MyCustomCallback"
          />

          FilterRowsCallback接口如下所示:

          public interface FilterRowsCallback {
          public Collection filterRows(TableModel model, Collection rows) throws Exception;
          }

          只有一個方法需要實現,傳入TableModel并返回一個集合。你只需像eXtremeTable對 每個callback的默認實現一樣來定制自己的callback。

          8.4. SortRowsCallback

          SortRowsCallback的默認實現得到Beans集合,使用jakarta BeanComparator進行排序, 排序值當用戶點擊列頭時取得。為了使用定制的callback,只要實現SortRowsCallback接口, 然后使用sortRowsCallback屬性來指定實現類的全路徑:

          <ec:table
          var="pres"
          action="${pageContext.request.contextPath}/presidents.run"
          sortRowsCallback="com.mycompany.callback.MyCustomCallback"
          />

          SortRowsCallback接口如下所示:

          public interface SortRowsCallback {
          public Collection sortRows(TableModel model, Collection rows) throws Exception;
          }

          只有一個方法需要實現,傳入TableModel并返回一個集合。你只需像eXtremeTable對 每個callback的默認實現一樣來定制自己的callback。

          posted on 2006-02-28 09:51 Lucky 閱讀(681) 評論(0)  編輯  收藏 所屬分類: extremeComponents

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

          導航

          隨筆分類(125)

          文章分類(5)

          日本語

          搜索

          積分與排名

          最新隨筆

          最新評論

          主站蜘蛛池模板: 扬中市| 玉溪市| 涟水县| 南漳县| 翼城县| 如东县| 张掖市| 台南市| 凤阳县| 五河县| 松滋市| 邹城市| 宁夏| 广宁县| 衡南县| 醴陵市| 万年县| 辽中县| 工布江达县| 龙陵县| 蒙城县| 滦南县| 雅江县| 安庆市| 荆门市| 博湖县| 衢州市| 新津县| 青海省| 平陆县| 漳浦县| 十堰市| 文山县| 南投市| 连山| 永靖县| 萨嘎县| 梧州市| 涟源市| 安徽省| 衡水市|