到的数据转换成更适合前端的JSON(一种轻量级的数据交换格式,易于机器的解析)数据。在这里采用一个简单易用的开源数据转换框架Jackson(可以轻松的将Java对象转换成json对象和xml文档,同样也可以将j son、xml转换成Java对象)来实现数据的转换。定义了一个数据库表数据转换成JSON的转换方法searchTreeeSoIut1nArgument(),该方法中通过solut1nService对象的getTreeJsonChart O方法返回需要的JSON类型研讨信息对象,并将其存放在JsonChart类型的对象数组中,再由JSONArray对象转化成Str ing类型进行前后台的数据传输。renderText O方法是基类act1n中定义的一个方法,其作用是将所返回的String数据封装至ijHttpServletResponse对象中,通过对该对象的写入操作实现数据对前端的输出传递。如图3所示。
[0035]数据转化的关键引入代码:
[0036]public void searchTreeSolut1nArgument(){
[0037]J sonChart[]j sonChart = solut1nService.getTreeJsonChart(discuss1nRoom.getId());
[0038]JSONArray jsonarr = new JSONArray ();
[0039]Jsonarr.add(jsonChart);
[0040]String jsonString = jsonarr.toString();
[0041 ] this.renderText(jsonString.substring(I,jsonString.length()-1));}
[0042]步骤三:引入数据解析模块,通过数据封装模块把数据库的数据组装完成后,再通过servlet内置对象传递到前端的数据解析模块,数据解析模块通过Javascript脚本语言对返回的数据进行重新的解析,把解析出来的数据作为参数传递给图形绘制模块提供的统一接口中。如图4所示。
[0043]步骤四:图形绘制模块接收到来自数据解析模块的参数数据,调用图形绘制模块中的tree, js组件来完成研讨信息可视化的思维导图绘制,在整个的绘制过程中,采用反转Ajax(Ajax是一种用于创建快速动态网页的技术)的推送技术,异步的提交数据请求,不断的更新数据,重画图形。最终来完成研讨信息的思维导图。在前端的jsp或者html页面添加js文件路径的引入并添加几行关键代码,创建tree对象并传入将要显示的数据参数。窗口参数根据页面的窗口大小进行设定,然后用jQuery(是JavaScript和查询,即是辅助JavaScript开发的库)中的$.ajax()方法向处理层提交申请,该方法通过不断的向控制层提交请求实现反转ajax方式,控制层转发到相应的act 1n(是用户请求和业务逻辑之间的桥梁,每个Act 1n充当客户的一项业务代理)中进行处理。Act 1n调用相关service方法将数据结果进行内置对象的封装,并且用返回函数的形式提交到前端的显示页面进行处理。这里的url就是请求的,dataType为返回函数的类型,success为请求提交成功后,服务层返回函数,其参数data为返回的数据封装对象。如图5所示。
【主权项】
1.一种基于D3的研讨系统思维导图,其特征在于:包括依次连接的数据封装模块、数据解析模块、图形绘制模块;数据封装模块获取数据库的数据,之后将数据库的数据封装成JSON格式传入数据解析模块,经过重解析以后传入图形绘制模块,最终完成研讨信息思维导图可视化的过程。2.根据权利要求1所述的基于D3的研讨系统思维导图,其特征在于:所述数据封装模块中,采用数据转换框架把从数据库中获取的数据转换成JSON数据。3.根据权利要求1所述的基于D3的研讨系统思维导图,其特征在于:所述数据解析模块中,利用JavaScript脚本语言对返回的数据进行重新解析,并把解析以后的数据作为参数传递到图形绘制模块的接口中。4.根据权利要求1所述的基于D3的研讨系统思维导图,其特征在于:所述图形绘制模块接收数据解析模块传递过来的信息,利用D3完成研讨信息思维导图的绘制。5.—种基于D3的研讨系统思维导图的开发方法,其特征在于:包括以下步骤: 步骤一:在项目工程中首先引入D3.js和tree.js两个依赖js的文件; 步骤二:数据封装模块把由数据库接收到的数据转换成更适合前端的JSON数据; 采用一个开源数据转换框架Jackson来实现数据的转换,定义一个数据库表数据转换成JSON的转换方法SearchTreeeSolut1nArgument (),该方法中通过solut1nService对象的getTree JsonChart ()方法返回需要的JSON类型研讨信息对象,并将其存放在JsonChart类型的对象数组中,再由JSONArray对象转化成String类型进行前后台的数据传输;利用renderText()方法将所返回的String数据封装到HttpServletResponse对象中,通过对该对象的写入操作实现数据对前端的输出传递; 步骤三:通过数据封装模块把数据库的数据组装完成后,再通过servlet内置对象传递到前端的数据解析模块,数据解析模块通过Javascript脚本语言对返回的数据进行重新的解析,把解析出来的数据作为参数传递给图形绘制模块提供的统一接口中; 步骤四:图形绘制模块接收到来自数据解析模块的参数数据,调用图形绘制模块中的tree, js组件来完成研讨信息可视化的思维导图绘制,在整个的绘制过程中,采用反转Ajax的推送技术,异步的提交数据请求,不断的更新数据,重画图形,最终来完成研讨信息的思维导图; 在显示端的jsp或者html页面添加js文件路径的引入并添加几行关键代码,创建tree对象并传入将要显示的数据参数;窗口参数根据页面的窗口大小进行设定,然后用jQuery中的$.a jax ()方法向处理层提交申请,该方法通过不断的向控制层提交请求实现反转ajax方式,控制层转发到相应的act1n中进行处理;Act1n调用相关service方法将数据结果进行内置对象的封装,并且用返回函数的形式提交到前端的显示页面进行处理。
【专利摘要】本发明提供一种基于D3的研讨系统思维导图及其开发方法;在B/S框架的基础上,在分析了国内外在研讨信息思维导图的展示方面的优缺点的基础上,同时采用当今流行的D3可视化技术,利用从数据库中获取的研讨信息数据动态绘制出研讨信息思维导图。本发明易用性高,采用简单,交互性强,在层次性的展示方面显得清晰,由于采用了树算法,使得思维导图以树形结构展示且在多人思维展示的上面不会显得节点拥挤,同时可以实时动态的显示研讨信息,清晰地了解研讨信息之间的关系,从而使得人们可以达到讨论问题的最好效果。
【IPC分类】G06F17/30
【公开号】CN105653650
【申请号】
【发明人】熊才权, 陈韶斌, 李元, 朱建军, 李煊
【申请人】湖北工业大学
【公开日】2016年6月8日
【申请日】2015年12月28日