跟我一起学extjs5(38--单个模块的设计[6取得模块列表数据])

跟我一起学extjs5(38--单个模块的设计[6取得模块列表数据])


        上一节中做好了前后台的程序,现在来看看取得数据的运行过程。在菜单中选择 “系统管理”--“模块分组”。就可以看到下图,在渲染后grid后,会显示数据。


      
        来看看ajax取得数据的url和数据。
        url的信息:
Remote Address:[::1]:8888
Request URL:http://localhost:8888/app/rest/module/fetchdata.do?_dc=1413113401477&moduleName=_ModuleGroup&page=1&start=0&limit=20
Request Method:GET
Status Code:200 OK

Query String Parametersview sourceview URL encoded
_dc:1413113401477
moduleName:_ModuleGroup
page:1
start:0
limit:20
        上面就是url里面发送到后台的参数,包括模块名称,取得得起始行,每页的记录数等信息。这些只是最基本的信息,以后复杂了还要加入排序信息、分组信息、筛选信息、导航列表信息。
        下面是服务器返回的数据:
{
	"totalCount" : 8,
	"records" : [{
				"tf_moduleGroupId" : "10",
				"tf_title" : "工程管理"
			}, {
				"tf_moduleGroupId" : "20",
				"tf_title" : "合同管理"
			}, {
				"tf_moduleGroupId" : "30",
				"tf_title" : "资金管理"
			}, {
				"tf_moduleGroupId" : "80",
				"tf_title" : "编码设置"
			}, {
				"tf_moduleGroupId" : "90",
				"tf_title" : "系统设置"
			}, {
				"tf_moduleGroupId" : "94",
				"tf_title" : "文件资料汇编"
			}, {
				"tf_moduleGroupId" : "95",
				"tf_title" : "附件管理"
			}, {
				"tf_moduleGroupId" : "99",
				"tf_title" : "系统模块"
			}]
}

        totalCount 表示总数,records是数组,返回了所要取得的那一页数据。

        后台取得数据的sql语句:先计算满足当前条件的总记录数,再取得分页数据
Hibernate: 
    select
        count(*)  
    from
        _ModuleGroup _t9901
Hibernate: 
    select
        top 8    _t9901.tf_moduleGroupId as tf_moduleGroupId ,
        _t9901.tf_title as tf_title ,
        _t9901.tf_description as tf_description ,
        _t9901.tf_iconURL as tf_iconURL ,
        _t9901.tf_remark as tf_remark    
    from
        _ModuleGroup _t9901 
    order by
        tf_moduleGroupId



        至此grid取得数据的功能就完成了。大家也看到了,所有的模块都是使用统一函数来取得数据,并不是一个模块就要建立一个Controller,一个Service,一个DAO。这种处理模式也是我这个软件所要尽量达到的,所有的功能都做到可以进行配置,然后再由前台后台协同解释执行来完成。
        对于一个独立的和其他模块没有关联的模块,这种解释执行方案是比较简单的。但是模块有了上下级,有了子模块,父模块,并且模块的层次很多时候,最后加入了权限,这个解释执行的处理将会非常的复杂。
        最终级的目标就是要根据模块的信息和字段的字义,可以任选若干个有关联的模块的若干个字段来进行综合查询的功能。以上这些功能已经在我的另一个博客里有详细的说明,现在正是一步步实现的时候。


郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。