`

Springside动态组合条件搜索

 
阅读更多

 SearchFilter 源码:

 

  1. <strong><span style="color:#dcdcdc;">package org.springside.modules.persistence;  
  2.   
  3. import java.util.Map;  
  4. import java.util.Map.Entry;  
  5.   
  6. </span>import org.apache.commons.lang3.StringUtils;  
  7.   
  8. import com.google.common.collect.Maps;  
  9.   
  10. public class SearchFilter {  
  11.   
  12.     public enum Operator {  
  13.         EQ, LIKE, GT, LT, GTE, LTE  
  14.     }  
  15.   
  16.     public String fieldName;  
  17.     public Object value;  
  18.     public Operator operator;  
  19.   
  20.     public SearchFilter(String fieldName, Operator operator, Object value) {  
  21.         this.fieldName = fieldName;  
  22.         this.value = value;  
  23.         this.operator = operator;  
  24.     }  
  25.   
  26.     /** 
  27.      * searchParams中key的格式为OPERATOR_FIELDNAME 
  28.      */  
  29.     public static Map<String, SearchFilter> parse(Map<String, Object> searchParams) {  
  30.         Map<String, SearchFilter> filters = Maps.newHashMap();  
  31.   
  32.         for (Entry<String, Object> entry : searchParams.entrySet()) {  
  33.             // 过滤掉空值  
  34.             String key = entry.getKey();  
  35.             Object value = entry.getValue();  
  36.             if (StringUtils.isBlank((String) value)) {  
  37.                 continue;  
  38.             }  
  39.   
  40.             // 拆分operator与filedAttribute  
  41.             String[] names = StringUtils.split(key, "_");  
  42.             if (names.length != 2) {  
  43.                 throw new IllegalArgumentException(key + " is not a valid search filter name");  
  44.             }  
  45.             String filedName = names[1];  
  46.             Operator operator = Operator.valueOf(names[0]);  
  47.   
  48.             // 创建searchFilter  
  49.             SearchFilter filter = new SearchFilter(filedName, operator, value);  
  50.             filters.put(key, filter);  
  51.         }  
  52.   
  53.         return filters;  
  54.     }  
  55. }</strong><span style="color:#dcdcdc;">  
  56. </span>  

来源:http://code.taobao.org/p/guanglai/src/trunk/springside4/modules/core/src/main/java/org/springside/modules/persistence/SearchFilter.java

可以看到仅支持六种操作:EQ, LIKE, GT, LT, GTE, LTE

修改程序name命名即可!注意后台Controller保持一致!

 

分享到:
评论

相关推荐

    SpringSide3的PropertyFilter条件过滤应用小结

    标题“SpringSide3的PropertyFilter条件过滤应用小结”指的是对SpringSide项目中PropertyFilter类的一个功能总结,这个类主要用于实现基于属性的条件过滤。在Java Web开发中,尤其是在使用Spring框架时,我们经常...

    SpringSide4 参考手册

    这些部分讲述了如何进行动态组合查询条件、使用Hibernate二级缓存、以及如何配置数据源和事务管理。 为了提升性能,文档介绍了各种缓存技术,包括Ehcache、Guava Cache以及分布式缓存的实现。还提到了如何在Ehcache...

    springside-3.2.2源码

    《SpringSide 3.2.2 源码解析与技术深度探讨》 SpringSide 是一个基于 Spring Framework 的 Java 开发工具集,旨在简化 Spring 应用程序的开发过程,提供一套快速、现代且规范的开发实践。SpringSide 3.2.2 版本是...

    springside开发全面讲解

    5. **Web应用框架**:springside集成了Spring MVC,提供了一种高效、灵活的处理HTTP请求的方式,同时支持模板引擎如FreeMarker和Thymeleaf,便于生成动态网页。 6. **数据访问层**:通过集成Hibernate或MyBatis,...

    Springside-core-4.1.0/Springside-core-4.1.0

    《SpringSide核心库4.1.0深度解析》 SpringSide是Java开发中的一款轻量级框架,它基于Spring框架,旨在简化企业级应用的开发流程。本文将深入探讨SpringSide-core-4.1.0的核心特性,以及其在实际项目中的应用。 一...

    springside3.0.zip

    《SpringSide 3.0:Java企业开发的高效框架指南》 SpringSide 3.0 是一个基于Spring框架的开源项目,旨在为Java开发者提供一套高效、简洁的开发规范和工具集。它不仅包含了Spring的核心模块,还整合了其他优秀的...

    springside

    《SpringSide:全面解析与应用》 SpringSide项目是一个基于Java的开源软件开发框架,它以Spring Framework为核心,旨在提供一套简洁、规范的项目构建和开发实践。在深入理解SpringSide之前,我们首先需要了解Spring...

    springside3.3.4 使用方法

    SSH指的是Spring、Struts和Hibernate三个开源框架的组合,它们常被用于构建高性能的企业级应用。在Springside 3.3.4中,这些框架的整合非常自然且高效: 1. **Spring**: - Spring框架作为核心,主要负责业务逻辑...

    SpringSide文档.chm

    SpringSide文档.chm。

    有springside4.2.3-GA.jar 包

    《深入解析springside4.2.3-GA.jar:Java开发者的宝藏库》 在Java开发领域,SpringSide框架以其高效、灵活和强大的特性深受开发者喜爱。本文将围绕springside4.2.3-GA.jar这个核心组件,探讨其在Java应用中的重要...

    springside-core-4.2.2.GA(含关联的test.jar)

    pom.xml配置 ...mvn install:install-file -DgroupId=org.springside -DartifactId=springside-core -Dversion=4.2.2.GA -Dfile=./springside-core-4.2.2.GA.jar -Dpackaging=jar -DgeneratePom=true

    SpringSide3.3.4安装部署

    SpringSide3.3.4 安装部署详解 SpringSide3.3.4 安装部署是指在计算机上安装和部署 SpringSide3.3.4 软件的过程。在这个过程中,我们需要使用 Maven 工具来生成项目模板,安装 mini-web 应用程序,并配置相应的...

    springside框架

    《SpringSide框架详解:整合Spring、Hibernate与Struts2的高效解决方案》 SpringSide框架,作为一款基于Java的开源企业级应用开发框架,是开发者们为了简化开发流程、提高开发效率而精心设计的。它巧妙地融合了...

    Springside4 学习整理

    - Persistence:包括 DynamicSpecifications、Hibernate 和 SearchFilter,这些工具类支持动态查询和数据持久化操作。 - Security:尤其是 Shiro 相关的 utils,提供了 Cryptos 和 Digests 工具类,支持消息签名、...

    springside4(showcase)

    《SpringSide 4:Spring MVC 实战展示》 在IT领域,SpringSide 4是一个备受推崇的开源项目,它是一个全面展示Spring框架及其生态系统的实战示例。标题"Springside4 (showcase)"暗示了这是一个以展示SpringSide 4...

    springside.jar

    《springside.jar在Java应用中的使用详解》 在Java开发领域,springside.jar是一个备受推崇的开源项目,它为开发者提供了丰富的工具和最佳实践,以简化Spring框架的使用。本文将深入探讨springside.jar的核心功能,...

    springside的jar包

    springside是一个开源的Java开发工具集,它为Spring框架提供了额外的支持和便利,使得开发者在基于Spring构建项目时能够更加高效和规范。这个"springside4-4.1.0.GA"的jar包是Springside项目的4.1.0版本的发布,GA...

    SpringSide的Hibernate封装

    4. Query和Criteria的创建与配置:返回已经设置好基本查询条件的Query和Criteria对象,方便开发者添加更多的查询参数。 5. 分页功能:提供pagedQuery()方法,除了获取分页结果外,还会计算总记录数,以满足显示分页...

    springside3.3完整版

    《SpringSide 3.3 完整版:深入解析与实战指南》 SpringSide 是一个开源的Java项目,旨在提供一套简洁、规范的Spring应用开发模板,帮助开发者快速上手Spring框架。本版本,即“springside3.3”,是专为MyEclipse...

    springside3文档资料收录

    《SpringSide3:全方位探索Java开发的利器》 SpringSide3是Java开发领域的一个重要参考资料,它是由知名开发者Calvin创建并维护的项目,旨在为Java开发者提供一套完整的Spring框架学习与实践指南。SpringSide3不仅...

Global site tag (gtag.js) - Google Analytics