幸せのちから

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

          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 閱讀(684) 評論(0)  編輯  收藏 所屬分類: extremeComponents

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

          導航

          隨筆分類(125)

          文章分類(5)

          日本語

          搜索

          積分與排名

          最新隨筆

          最新評論

          主站蜘蛛池模板: 柏乡县| 阜平县| 宜君县| 浑源县| 公安县| 栾城县| 通城县| 石屏县| 屏边| 泊头市| 漠河县| 松阳县| 垦利县| 宜阳县| 慈利县| 浦北县| 邵武市| 慈溪市| 屏东县| 黎平县| 沂源县| 桃园市| 黄平县| 枣阳市| 嘉定区| 乃东县| 开化县| 扎囊县| 右玉县| 新和县| 祁阳县| 威宁| 土默特右旗| 高唐县| 凤冈县| 嘉黎县| 延边| 东乡| 刚察县| 嵩明县| 乐亭县|