<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    幸せのちから

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

    定制FilterRowsCallback

    定制FilterRowsCallback


    1. 引言

    FilterRowsCallback被用來過濾傳給eXtremeTable的Beans的Collection。 FilterRowsCallback的默認實現(xiàn)是得到Beans或Maps的Collection,然后通過實現(xiàn)jakarta Predicate接口來進行過濾。當然,如果你需要進行一些定制你可以插接自己的實現(xiàn)。

    首先聲明,本示例代碼包含一些從原包中剪切、粘貼的代碼(雖然不是很多)。在 最初的最終發(fā)行包之后,值過濾得到進一步改善使得更具復用性并更容易實現(xiàn),可能和定制cell代碼行數(shù)相同。 當然,我被要求并非常樂意示范如何在當前代碼基礎上實現(xiàn)定制過濾。這有非常清晰的hooks實現(xiàn),并且很容易實現(xiàn)。

    本示例示范了如何調整代碼為過濾器提供一個精確的比較功能。當前的實現(xiàn)是通過使用StringUtils.contains()方法進行模糊比較。 本示例將使用StringUtils.equals()方法。你可以按照你的需要來調整代碼進行更多定制。

    1.1. 定制FilterRowsCallback示例

    首先你需要做的是創(chuàng)建一個實現(xiàn)Predicate接口的定制類。Predicate要求我們實現(xiàn)evaluate()方法來判斷是否包含 當前bean。因為你僅僅調整現(xiàn)在已有的功能,首先得到filterPredicate的源代碼(在發(fā)行包的callback包下), 拷貝到你的工程里。然后向下面展示的一樣將 StringUtils.contains()方法修改為StringUtils.equals()方法:

    public final class ExactMatchFilterPredicate implements Predicate {
    private boolean isSearchMatch(String value, String search) {

    ...

    else if (StringUtils.equals(value, search)) {
    return true;
    }

    ...

    }
    }

    然后我們需要實現(xiàn)和Predicate共同作用的FilterRowsCallback接口。再一次從發(fā)行包的callback包下拷貝ProcessRowsCallback源代碼到你的工程里。 請參照我們創(chuàng)建的定制的ExactMatchFilterPredicate 類來確認僅僅實現(xiàn)了FilterRowsCallback和修改Predicate。

    public class ExactMatchFilterRows implements FilterRowsCallback {
    public Collection filterRows(TableModel model, Collection rows) throws Exception {

    ...

    if (filtered) {
    Collection collection = new ArrayList();
    Predicate filterPredicate = new ExactMatchFilterPredicate(model);
    CollectionUtils.select(rows, filterPredicate, collection);

    return collection;
    }

    ...

    }
    }

    為了使用這個FilterRowsCallback你應該在Preferences中聲明一個別名。當然,你可以省略這步而在JSP中提供這個FilterRowsCallback實現(xiàn)類的全路徑,但是使用Preferences更簡潔。

    table.filterRowsCallback.exactMatch=org.extremesite.callback.ExactMatchFilterRows

    在TableTag通過設置filterRowsCallback屬性來使用ExactMatchFilterRows。

    <ec:table filterRowsCallback="exactMatch"/>

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

    posted on 2006-02-24 10:29 Lucky 閱讀(569) 評論(0)  編輯  收藏 所屬分類: extremeComponents

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

    導航

    隨筆分類(125)

    文章分類(5)

    日本語

    搜索

    積分與排名

    最新隨筆

    最新評論

    主站蜘蛛池模板: 国产精品一区二区三区免费| 亚洲色在线无码国产精品不卡 | 亚洲欧洲日产国码无码久久99| 香蕉97碰碰视频免费| 免费在线观看的黄色网址| 美美女高清毛片视频黄的一免费| 又粗又硬又黄又爽的免费视频| 免费一级毛片在线播放视频免费观看永久 | 亚洲一卡2卡3卡4卡国产网站| 男男AV纯肉无码免费播放无码| 亚洲日本乱码卡2卡3卡新区| 午夜老司机免费视频| 国产亚洲精品美女久久久久 | 亚洲成年看片在线观看| 一级毛片**免费看试看20分钟| 日韩精品亚洲aⅴ在线影院| 国产成人精品无码免费看| 91亚洲精品视频| 免费可以在线看A∨网站| 色婷婷亚洲一区二区三区| 亚洲一级片内射网站在线观看| 中文字幕在线免费看线人| 91亚洲精品视频| 日本xxwwxxww在线视频免费| 农村寡妇一级毛片免费看视频| 国产亚洲精品影视在线产品| 日本亚洲欧洲免费天堂午夜看片女人员 | 亚洲精品国产情侣av在线| 成年人免费网站在线观看| 无码的免费不卡毛片视频| 久久噜噜噜久久亚洲va久| AV免费网址在线观看| 一级毛片视频免费| 亚洲白嫩在线观看| 一级毛片直播亚洲| 最近免费中文字幕高清大全| 色综合久久精品亚洲国产| 久久久亚洲欧洲日产国码农村| 午夜小视频免费观看| 大地资源网高清在线观看免费 | 亚洲av午夜精品一区二区三区|