如何处理在FROM和TO字段的表单中搜索自定义字段?

时间:2014-03-19 11:26:07

标签: sql java-ee search extjs information-retrieval

我刚刚开始在项目中实现搜索模块,其中我有一个包含组合框,文本框,单选按钮等固定字段的表单(多个选项卡中大约200个字段),以后客户端应该能够添加额外的字段。一旦用户填写了他想要搜索的字段,他也应该能够保存该搜索条件。出于所有这些原因,对于每个字段,我按以下格式关联元数据。

" EntityName.attributeName":attributeValue

一旦用户填写表单字段进行搜索,我将验证表单数据,并且仅验证我以JSON格式发送到服务器的非空字段元数据。到目前为止一切都很好。但我现在面临一些问题。

使用每个字段的元数据,我将为每个字段创建一个新标准。但如果有一个字段,其中一个字段元数据依赖于其他字段元数据,我很震惊。

在表单中,我有以下格式的几个特殊类别字段:例如DOB,

FROM DATE(元数据:entity1.dob) 日期(元数据:entity1.dob)

  • 两个字段属于同一个实体,同一列只有UI中的字段名称不同

像这样我有大约20个字段要求FROM和TO来查询范围(它不需要在日期,例如没有床房..可以是整数,字符串等)

我的查询形式应根据用户搜索条件以下列方式进行。如果用户只输入了床房数量的FROM字段,那么我必须在sql中使用EQUAL查询运算符,如果两者都提到MORETHANEQUAL为FROM字段,LESSTHANEQUAL为to to field。那我怎么能处理这个特例?

如果他在床房数量的TO字段中输入了4个字段,那么我必须查询房间数量等于4的房屋。但如果在FROM中他输入3并且在To中输入7然后,我必须查询大于或等于3个卧室和小于或等于7个卧室的房屋。

由于我对这些类别字段有相同的元数据,我也无法继续,为了实现这一点,我需要准备哪种元数据?

如何概括这个过程来处理所有情况?

  • 我的技术堆栈:ExtJs,Eclipse Link,spring。

  • 在企业应用程序中支持自定义字段添加功能的最佳做法是什么?

1 个答案:

答案 0 :(得分:0)

离开我的头顶,我会为这些特殊情况创建向导。例如,有一个自定义向导,允许用户在一个动作中定义“从”字段,“到”字段,然后定义比较运算符。此向导还可以负责将自定义属性添加到验证例程可以使用的生成字段中。因此,基于from,to和operator的组合,您可以创建一个灵活的验证机制,以确保输入正确的值,范围是正确的,无论如何。

事实上,您可能会考虑所有自定义字段的“向导”方法。我可以看到你预定义了可以使用的所有可能的自定义字段类型,并创建了可用于那些的类。这些类不仅可以负责字段创建,还可以负责提供任何自定义验证,预提交转换等。这种方法可以使添加新的自定义字段类型非常简单,因为您所需要做的就是遵循相同的实现其他已经存在的,扩展现有的等等。