`

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 开发的 Html 表格组件,源自 ExtremeTable 项目,主要用于在 Web 应用中展示、过滤、排序和分页数据,并支持数据导出功能。它非常灵活,允许开发者根据具体需求进行定制。...

    jmesa的一个例子

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

    Jmesa快速指南

    《Jmesa在Struts2环境中的应用实践》 Jmesa是一款强大的Java表格和分页处理库,尤其适用于Web应用程序。在Struts2框架下集成Jmesa,可以为用户提供直观、高效的数据显示和操作功能。然而,由于相关文档较少,使得在...

    jmesa 入门

    **JMESa 入门详解** JMESa(Java Message Expression Language for SQL Access)是一种用于在Java应用程序中查询和操作数据库的开源工具。它提供了一种简洁、强大的方式来表达SQL查询,使得开发者可以更方便地与...

    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 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-snapshot.jar

    jmesa-snapshot.jar jmesa用到的jar

    jmesa-ajax

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

    Jmesa示例[分页,排序,导出CSV,EXCEL,PDF]

    "Jmesa示例[分页,排序,导出CSV,EXCEL,PDF]" 这个标题提到了几个关键功能点,它们是Jmesa库在实际应用中的常见操作: 1. **分页**:这是在处理大量数据时非常重要的功能,允许用户按指定数量的数据分批次加载和显示...

    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-3.0.4.zip

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

    jmesa学习笔记。。。

    ### JMesa 学习笔记详解 #### 一、概述 JMesa是一款强大的表格控件工具,主要用于Web应用程序中实现高效的数据展示与管理。本篇学习笔记主要围绕JMesa的安装配置、基本使用方法以及常见问题解决策略进行详细介绍。...

Global site tag (gtag.js) - Google Analytics