运用 struts2 和 ajax 进行动态对象数据的加载
现在的项目中,存在着许多的列表选择数据,比如在一个界面中有许多的选择项。
通过这些选择项是由一个 select 下拉列表来进行选择的,而加载这些下拉列表,除
普通的在 action 中主动获取之外,另外一种方式进行 ajax 方式在界面加载时加载。
在我们的项目中,现在运用的即是在界面加载时,通过 ajax 方式来加载相应的列
表数据,这样的好处即是不需要在表单加载时,由处理表单的 action 来生成相应的
列表数据,而是交给产生这个列表数据的 action 来加载数据。现在存在的主要问题
就是,每个列表的数据来源不一样,这就导致了需要写不同的加载代码来加载这些
数据,而每个加载数据的 action 代码分布在不同的处理 action 中(比如用户数据由
UserAction 处理,字典数据由 DictionaryAction 处理),而每个加载逻辑还需要根
据不同的参数进行不同的 service 转发,而经以 dao 来获取数据。在界面上,相应
的 js 加载代码也不尽相同,但大体逻辑均是相同(即获取数据,填充列表)。
解决问题的方法
即是将所有的通用数据加载逻辑进行统一封装,前台 js 入口统一,后台逻辑统一。
比如,通过 load[User]用于加载用户数据,load[Dictionary]用于加载字典数据,用不
同的参数来进行相应的数据加载。
大致思路
界面上传递几个关键性的参数(加载类,过滤参数,显示参数,以及排序参数),
统一传递给 action,action 对加载类作判断,再对过滤参数进行参数处理(过滤非
法参数),然后从数据库中进行数据加载(考虑排序),之后再对显示参数进行参
数处理(过滤非法参数),最后将信息通过 ajax 的方法传递给界面,由界面进行
列表数据构建并展现。
界面实现效果
1,用户选择一个加载数据类型,