关于组合查询的实现
示范中心有一项功能是组合查询,就是在现有数据(例如教师、实验室、实验项目)中过滤出感兴趣的数据。因为数据的类型比较多,大约有十个,为每种类型都做一套查询界面和对应的Action代码很不划算。
我打算通过配置文件的方式,为每个类型的数据都需要对哪些属性进行过滤进行说明,并且说明每个属性在界面上表现为文本框、下拉框或是日期选择框,从而生成不同的查询界面,比如下面的格式定义了教师的查询属性集合,等等。
<root>
<queryConfig>
<class>edu.pku.cc.democenter.model.business.Teacher</class>
<name>教师</name>
<property>
<name>姓名</name>
<field>name</field>
<control>text</control>
</property>
<property>
<name>性别</name>
<field>gender</field>
<control>select</control>
<type>edu.pku.cc.democenter.model.system.Gender</type>
</property>
</queryConfig>
<queryConfig>
</queryConfig>
</root>
<queryConfig>
<class>edu.pku.cc.democenter.model.business.Teacher</class>
<name>教师</name>
<property>
<name>姓名</name>
<field>name</field>
<control>text</control>
</property>
<property>
<name>性别</name>
<field>gender</field>
<control>select</control>
<type>edu.pku.cc.democenter.model.system.Gender</type>
</property>
</queryConfig>
<queryConfig>
</queryConfig>
</root>
不过有一些细节问题还需要讨论,比如下拉框的内容如何填充,不同下拉框之间可能还会有关联,比如选择了示范中心下拉框以后,实验室下拉框中就应该只出现该示范中心的实验室作为候选项。验证方式可能也是一个潜在的问题。
一个个解决吧。