`

jmesa之FilterMatcher

阅读更多
Jmesa本来已经讲得差不多了,但是还有一些细节可能需要完善一下,下面讲讲FilterMatcher,
FilterMatcher主要针对的是条件过滤,这里要解决的问题主要有两个,一是条件查询的时候需要下拉菜单,二是解决一些格式匹配问题,如不区分大小写,日期格式等。

下拉菜单问题解决起来很简单,首先实现一个包含下拉菜单的类:

public class NameDroplistFilterEditor extends DroplistFilterEditor {
   @Override
   protected List<Option> getOptions()  {
      List<Option> options = new ArrayList<Option>();
      options.add(new Option("fans","fans"));
      options.add(new Option("fansof", "fansof"));
      return options;
   }
}


然后把它赋给tableFacade:

........
HtmlColumn name = row.getColumn("name");
name.setTitle("名字");
name.getFilterRenderer().setFilterEditor(new NameDroplistFilterEditor ());
.........


最后在JSP的标签中引入:

.........
<jmesa:htmlColumn property="name" filterEditor="com.util.NameDroplistFilterEditor " />
........


这样,在名字的条件查询栏中,就会有相应的下拉菜单了。

第二个问题的解决可能会麻烦一点,它主要提供的是过滤的一种策略,解决的方式有两种,一种是直接在JAVA代码中使用实现了FilterMatcher的类,或者在JSP的标签中使用实现了FilterMatcherMap的类。
默认的过滤是区分大小写的,如果不要区分大小写,可以这样:

public class CaseFilterMatcher implements FilterMatcher {
   public boolean evaluate(Object itemValue, String filterValue) {

      String item = StringUtils.lowerCase(String.valueOf(itemValue));
      String filter = StringUtils.lowerCase(String.valueOf(filterValue));

      if (item.contains(filter) {
            return true;
      }

      return false;
   }
}


然后将它赋给TableFacade:

......
//注意位置
tableFacade.addFilterMatcher(new MatcherKey(String.class, "name"),new CaseFilterMatcher());
...


这样就可以了,如果要使用标签的方式,就需要实现FilterMatcherMap,在此不再多说,详细说明可见官方资料。
分享到:
评论
1 楼 sinnnnnnnnnnn 2011-09-10  
我想问下,如果是
options.add(new Option("fans","fans"));  
options.add(new Option("fanssssssssss", "fanssssssssss")); 
这样的话,如果我下拉选择 fans,因为是jmesa默认是模糊查询
fanssssssssss这个查询结果也会被查不出来,怎么解决

相关推荐

    jmesa.jar jmesa.jar

    jmesa.jar jmesa.jar

    jmesa-tag

    **标题:“Jmesa-Tags”** 在Java Web开发领域,`Jmesa`是一个针对`ExtremeTable`的下一代项目,旨在提供一个更为强大的表格展示API。与传统的TagLib(标签库)相比,Jmesa的目标是为开发者创造更加高效且功能丰富...

    jmesa的一个例子

    **Jmesa简介** Jmesa,全称为Java Middleware for Extracting and Analyzing Streams,是一个开源的Java中间件,主要用于处理和分析数据流。它提供了一种高效、灵活的方式来处理实时和近实时的数据流,使得开发者...

    jmesa2.3.4

    《深入解析jmesa2.3.4:一个不可或缺的API工具》 jmesa2.3.4,作为一款备受推崇的API,其在IT领域中的应用广泛且深受好评。这款工具以其卓越的性能和易用性,为开发者提供了一种高效的数据处理和分析解决方案。本文...

    jmesa核心讲解

    **JMESA核心讲解** JMESA,全称为Java Message Expert for SQL Access,是一个开源的Java库,专门用于处理和分析SQL数据库中的数据。它提供了一种高效且灵活的方式来访问和操作存储在关系型数据库中的大量信息。在...

    jmesa所需完整jar包

    JMESA,全称Java Medical Image Analysis,是一个用于医学图像分析和处理的开源库。它提供了丰富的功能,包括图像显示、处理、分析以及与多种数据格式的交互。这个压缩包包含的是JMESA所需的全部jar包,确保了你在...

    Jmesa快速指南

    最近做一个应用的时候用到了Jmesa(至于Jmesa的详细介绍,请Google),但是关于Struts2和Jmesa的资料特别少,费尽周折总算让他们两个正常运行了,现在把使用他们的一些心得写下来与大家分享

    jmesa war source

    【标题】"jmesa war source" 指的是一个与JMESa相关的WAR源码包,这个包包含了JMESa的2.3版本示例应用的源代码。 【描述】"jmesa-2.3_examples.war-source.zip" 重复三次,暗示这个压缩文件是关于JMESa 2.3版本的...

    jmesa-3.0.jar

    jmesa表格标签 依赖包 jmesa-3.0.jar

    jmesa-2.4.4.jar

    jmesa-2.4.4.jar 有源码

    jmesa-ajax

    《JMESA与AJAX集成实现详解》 在现代Web应用程序中,实时数据交互和页面无刷新更新已经成为提升用户体验的关键因素。为此,开发者们广泛利用AJAX(Asynchronous JavaScript and XML)技术,它允许在不重新加载整个...

    jmesa-snapshot.jar

    jmesa-snapshot.jar jmesa用到的jar

    JMESA SERVLET

    ** JMESA SERVLET ** JMESA(Java Model for Export and SpreadSheet Analysis)是一个用于数据导出和电子表格分析的Java库。它提供了一种简单的方法来生成各种格式的文件,如TXT、PDF和Excel,这在Web应用程序中...

    jmesa-3.0.4.jar

    jmesa-3.0.4 最新版 供大家学习下载

    jmesa入门实例源码

    **JMESA(Java Multidimensional Expression Set API)** 是一个强大的开源库,主要用于处理多维数据,如数组、矩阵和立方体。它为Java开发者提供了处理和分析大量结构化数据的能力,尤其在科学计算、统计分析和大...

    jmesa使用说明文档

    这是一篇关于如何使用jmessa的说明文档

    jmesa-3.0.4.zip

    **JMESa 3.0.4:一个实用的分页控件** JMESa,全称为Java Middle Eastern Server Adapter,是一款专为Java开发者设计的高效、易用的分页控件。它在3.0.4版本中提供了丰富的功能和优化,旨在提升开发者的编程体验,...

    jmesa add page number

    标题“jmesa add page number”涉及到的是一个与文档处理相关的技术问题,特别是关于如何在使用JMESA(Java Multimedia Extension for Advanced Services)库时添加页码。JMESA是一个开源的Java库,用于处理多媒体...

    jmesa 排序 过滤 例子

    官方提供的另外一种方法的实现。 有排序和过滤。 而且能支持大数据量的查询。

    jmesa-3.0_examples.war-source

    《jmesa-3.0_examples.war-source:探索官网实例源码的宝藏》 jmesa是一款功能强大的Java中间件,它提供了丰富的数据访问和分析功能,特别适合于处理和展示复杂的数据集。jmesa-3.0是其一个重要的版本,引入了诸多...

Global site tag (gtag.js) - Google Analytics