这次的项目要求有一个养殖池的监测指标的动态展现,就是在系统的主页,展示出各个养殖池的实时动态数据。
数据由另外的一段程序,实时从硬件读取写进数据库,所以要做的就是定时去数据库去取数据就行了。
贴出来的代码,主要是实现的页面展示部分:
第一次载入页面后,养殖池读取一次数据,然后开始调用Ext.TaskMgr来实现动态的去发起请求
这就可以定时的调用RealTimeMointor函数 去执行发起请求
这个函数的url是请求数据的地址,返回的是一个json格式的数据,如何做请参照我的另外一篇文章
如何生成树http://blog.csdn.net/peng_wu01/archive/2010/04/28/5538171.aspx;
struts.xml
一定要注意一点就是 ,一定要写个页面接一下你要取的数据,这样才能知道你要转哪个JSON。
/realtime/jsonaccepter.jsp
Action的处理:
这里有个十分好玩的地方,就是JSONArray.fromObject()这个方法返回的JSON类型的key值是有双引号的,而回到页面的时候用
Ext.util.JSON.decode(response.responseText) 去操作的时候是不认双引号的,我纠结了老半天才发现问题出在这里,相当的让我窝火,NND。不得不暴一下粗口。还有JSONArray.fromObject()的返回是个数组类型,decode貌似只能转{}里的内容
顺便发一下 我得到的JSON的格式,这里的格式和EXT.tree所需要的格式,有点区别的
在回到页面,还是Ext.util.JSON.decode()的问题,他将一个json格式的东西给转换为一个对象类型,但是有一个地方需要注意,在
function RealTimeMointor() 里我注释掉的内容。
//Ext.Msg.alert('提示', respText.info[1].monitorDetailInfoMap); 如果这样写的话
//Ext.Msg.alert('提示', respText.info[1].monitorDetailInfoMap.水温); 会提示XX对象没有定义。后来我突然想明白了,monitorDetailInfoMap仍然被认为是一个对象,重新再decode一下就OK了,但是我没有做,因为monitorDetailInfoMap里的数据的个数是动态的,所以直接遍历会更合理一点
Ext.Ajax.request 返回数据成功后 success里有个方法,调用函数可以带两个个参数function(response, option),那个response里有返回的数据,如何处理,请参看上面的代码。
还剩一个问题就是如何把数据塞到已经存在的DIV里,并且页面不刷新。ID.innerHTML=xx 可以解决这个问题。
function(response, option)里调用了insertIntoHtml方法来完成这个工作
由于页面存在的DIV的ID也是动态生成的,所以取其ID的时候做了一点处理,上面的代码里有注释。
到这里基本也就完成了所有的动作,达到的效果就是每十秒钟页面就会向后台请求一次数据,而每个DIV里的数据在页面不刷新的前提下完成了数据的更新。
有些地方的思路可能过于僵硬,做的不好的地方请高手们指正 。
有看不懂清楚的地方,请给我留言,必回复!
分享到:
相关推荐
一个运用Extjs,Struts2, json,iterator技术构建的iterator_jsonDemo2。iterator_jsonDemo1的链接:http://download.csdn.net/detail/cafebar123/8816409 运用了Extjs,Struts2, json,iterator技术, 将数据从...
ExtJs + Struts2 + JSON 程序总结
extjs动态表格实例(封装GRID,从STRUTS2读取后台数据 )
extjs动态树struts请求数据json数据格式
经过几天的研究实现定时读取数据库报警信息,报警,请大家参考。
extjs+struts2+hibernate+json登录程序,主要讲解struts2配置JSON与前台extjs通信,异步数据交换,很强大
extjs4 MVC2 TreePanel动态JSON实现 extjs4 MVC2 TreePanel动态JSON实现
struts2+extjs+json整合实例
struts2 json extjs 完整实例 struts2 json extjs 完整实例 完整可用 无错! struts2 json extjs 完整实例 struts2 json extjs 完整实例 完整可用 无错! struts2 json extjs 完整实例 struts2 json extjs 完整...
ExtJS_Tree利用_JSON_在Struts_2实现Ajax动态加载树结点,精彩不容错过。
使用ExtJs获取后台json格式的数据必须的七个jar包,commons-beanuti-1s-1.7.0.jar,commons-collections-3.1.jar,commons-lang-2.5.jar,commons-logging-1.0.4.jar,ezmorph-1.0.4.jar,json-lib-2.1.jar,...
ExtJS4+Accordion+SERVLET/STRUTS2+JSON+Ext.tree.Panel实例
extjs读取解析后端json格式数据并显示条形图,非常好看的特效,只能用炫酷来形容,感兴趣就下载看看吧,用在自己的网站觉得吸引眼球!
Extjs Tree + JSON + Struts2 例子
搭建EXTJS和STRUTS2框架(ext和struts2简单实例)
extjs实现动态树加载菜单
Struts2+Json+ExtJS分页 资料来自互联网,及供参考学习。
js代码,实现了 extjs4.x tabpanel 动态加载panel和html的功能
extjs异步树,多选树,json数据机构,集成spring,struts例子,extjs异步树,多选树,json数据机构,集成spring,struts例子,extjs异步树,多选树,json数据机构,集成spring,struts例子,extjs异步树,多选树,json...
Struts2+Spring+Hibernate+ExtJS开发CRUD功能