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,在此不再多说,详细说明可见官方资料。
分享到:
相关推荐
jmesa.jar jmesa.jar
最近做一个应用的时候用到了Jmesa(至于Jmesa的详细介绍,请Google),但是关于Struts2和Jmesa的资料特别少,费尽周折总算让他们两个正常运行了,现在把使用他们的一些心得写下来与大家分享
这是一个jmesa的例子 没有jar包 详情见 http://writeblog.csdn.net/PostList.aspx 初探jmesa
jmesa表格标签 依赖包 jmesa-3.0.jar
介绍ExtremeTable的下一代Jmesa,这个项目的目的是为开发者提供更有效的表格展现的API,而不是简单的TagLib。
jmesa-2.4.4.jar 有源码
jmesa-snapshot.jar jmesa用到的jar
jmesa2.3.4非常好的API,推荐使用
jmesa 所需要的 完整jar包,非常的全
jmesa-3.0.4 最新版 供大家学习下载
jmesa 。。。。。。。。。。。。。
这是一篇关于如何使用jmessa的说明文档
使用jmesa做的分页,导出可以导出文txt,pdf,excel等格式,采用servlet 没有使用其他的框架,对还没有学会框架的比较好理解
官方提供的另外一种方法的实现。 有排序和过滤。 而且能支持大数据量的查询。
jmesa-2.3_examples.war-source.zipjmesa-2.3_examples.war-source.zipjmesa-2.3_examples.war-source.zip
使 jmesa支持ajax的JS源码 描述>=20个字符,不支持HTML标签。
NULL 博文链接:https://zengguo1988.iteye.com/blog/699798
jmesa入门实例源码
一个Struts1.2+Spring2.5+Hibernate3.2+Jmesa2.4.3+JmesaTag实现的强大分页控件例子 里 面有action实现分页和标签实现分页2个例子 action实现的分页 包括了表头排序,导出为PDF,TXT, excel等格式 jar包和数据库...
jmesa源码解读 共五部分 jmesa源码解读一[包结构] jmesa源码解读二[limit包] jmesa源码解读三[core包] jmesa源码解读四[core.filter包] jmesa源码解读五[view包]