幸せのちから

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

          Chapter 8. Callbacks

          Chapter 8. Callbacks

          8.1. 引言

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

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

          8.2. RetrieveRowsCallback

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

          <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;
          }

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

          8.3. FilterRowsCallback

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

          <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;
          }

          只有一個(gè)方法需要實(shí)現(xiàn),傳入TableModel并返回一個(gè)集合。你只需像eXtremeTable對 每個(gè)callback的默認(rèn)實(shí)現(xiàn)一樣來定制自己的callback。

          8.4. SortRowsCallback

          SortRowsCallback的默認(rèn)實(shí)現(xiàn)得到Beans集合,使用jakarta BeanComparator進(jìn)行排序, 排序值當(dāng)用戶點(diǎn)擊列頭時(shí)取得。為了使用定制的callback,只要實(shí)現(xiàn)SortRowsCallback接口, 然后使用sortRowsCallback屬性來指定實(shí)現(xiàn)類的全路徑:

          <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;
          }

          只有一個(gè)方法需要實(shí)現(xiàn),傳入TableModel并返回一個(gè)集合。你只需像eXtremeTable對 每個(gè)callback的默認(rèn)實(shí)現(xiàn)一樣來定制自己的callback。

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

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

          導(dǎo)航

          隨筆分類(125)

          文章分類(5)

          日本語

          搜索

          積分與排名

          最新隨筆

          最新評論

          主站蜘蛛池模板: 安平县| 全椒县| 湾仔区| 苏尼特左旗| 锡林浩特市| 云阳县| 唐河县| 长白| 微博| 宝鸡市| 永福县| 南江县| 海口市| 广德县| 平陆县| 手机| 安宁市| 琼海市| 阿拉善盟| 喜德县| 朝阳市| 德庆县| 彩票| 微山县| 和静县| 安福县| 偏关县| 沂源县| 茶陵县| 榆社县| 浦江县| 阆中市| 永善县| 青铜峡市| 昂仁县| 宣汉县| 安远县| 广饶县| 新安县| 霍州市| 镇宁|