示范中心有一项功能是组合查询,就是在现有数据(例如教师、实验室、实验项目)中过滤出感兴趣的数据。因为数据的类型比较多,大约有十个,为每种类型都做一套查询界面和对应的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 >
不过有一些细节问题还需要讨论,比如下拉框的内容如何填充,不同下拉框之间可能还会有关联,比如选择了示范中心下拉框以后,实验室下拉框中就应该只出现该示范中心的实验室作为候选项。验证方式可能也是一个潜在的问题。
一个个解决吧。
本文转自博客园八进制的博客,原文链接:关于组合查询的实现,如需转载请自行联系原博主。