首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

SPRINGMVC EASYUI TREE递归模式获取JSON

2013-11-12 
SPRINGMVC EASYUI TREE递归方式获取JSON最近需要用到EASYUI中的TREE功能,以前我是直接拼接成ULLI发现

SPRINGMVC EASYUI TREE递归方式获取JSON

最近需要用到EASYUI中的TREE功能,以前我是直接拼接成<UL><LI>发现这样拼完之后在更改树后对树的刷新不是很理想,现改用JSON格式,首先分析TREE中JOSN格式如下:

?

[{"id":1,"text":"流程分类","children":[{"id":11,"text":"门禁流程分类","checked":true},{"id":113,"text":"子门禁流程分类","children":[{"id":1131,"text":"子子门禁流程分类"},{"id": 8,"text":"Async Folder","state":"closed"}]}]},{"id":3"text":"行政","children":[{"id":"31","text":"加班"},{"id":"33","text":"请假"}]}]

?可以看出这种模式是由三个属性所组成,ID TEXT 集合,根据分析 我们需要对此模式建立一个BEAN的结构模型,建立TREENODE:

package com.odbpo.beans;import java.util.List;public class TreeNode {private int id;private String text;private int pid;private List<TreeNode> children;public int getPid() {return pid;}public void setPid(int pid) {this.pid = pid;}public int getId() {return id;}public void setId(int id) {this.id = id;}public String getText() {return text;}public void setText(String text) {this.text = text;}public List<TreeNode> getChildren() {return children;}public void setChildren(List<TreeNode> children) {this.children = children;}}

?BEAN构建完成,那么接下来分析如何往BEAN里传数据,首先分析 数据库表中结构

create table depatment(id,--当前IDpid,--父IDname--显示名称)

?接下来我们要建立一个COM.UTIL包,所递归方法放置在这个包下,以便后续多次调用方便

建立类名为:JSONFACTORY

/* * 以对象形式传回前台 */public static List<TreeNode> buildtree(List<TreeNode> nodes,int id){List<TreeNode> treeNodes=new ArrayList<TreeNode>();for (TreeNode treeNode : nodes) {TreeNode node=new TreeNode();node.setId(treeNode.getId());node.setText(treeNode.getText());if(id==treeNode.getPid()){node.setChildren(buildtree(nodes, node.getId()));treeNodes.add(node);}}return treeNodes;}

?完成以上工作后我们就要在控制器中使用在DAO中建立好的查询方法,这里DAO中写法就不细说了;

控制器写法如下:

@RequestMapping("/flow_tree")@ResponseBodypublic List<TreeNode> getTree(){List<TreeNode> nodes=new ArrayList<TreeNode>();List<FlowSortTable> list_all=flowSortTableServiceImpl.findAll();for (FlowSortTable flowSortTable : list_all) {TreeNode treeNode=new TreeNode();treeNode.setId(flowSortTable.getSortId());treeNode.setPid(flowSortTable.getSortPartmentId());treeNode.setText(flowSortTable.getSortName());nodes.add(treeNode);}List<TreeNode> treeNodes=JsonTreeFactory.buildtree(nodes,0);return treeNodes;}

?以上工作结束,我们就可以在前台使用EASYUITREE模式了

将此代码 放在$(document).ready(function(){})中

$("#tt1").tree({  url: '${contextPath}/main/flow/flow_tree.html',  onClick:function(node){  $("#sort").css("display","block");  $("#save").hide();  $("#update").show();  odbpo_combobox("#flowType",'${contextPath}/main/flow/flowSelect.html',"flowId","flowName");  var pnode=$(this).tree('getParent',node.target);  $("#flowType").combobox('setValue', pnode.id);  $("#node_id").val(node.id);  $("#node_text").val(node.text);console.debug(node.id);console.debug(node.text);  }  })

?HTML构建:

<ul id="tt1"></ul>

?启动TOMCAT预览就可以看到一个树形图的效果了!

?

?

热点排行