gson版本:gson-2.2.4.jar
ext4js 部分代码:
xtype: 'treepanel',
region: 'west',
width: 240,
store: 'MytreeStore',
title: '',
split: true,
autoScroll: true,
root: {
expanded: true
},
rootVisible: false,
viewConfig: {
},
listeners: {
cellclick: {
fn: me.onTreepanelCellClick,
scope: me
}
}
封装类,字段不能改变
class MyTreeNode {
private String id;
private String text;
private Boolean expanded = false;
private Boolean leaf = true;
private String url;
private List<MyTreeNode> children;
public List<MyTreeNode> getChildren() {
return children;
}
public void setChildren(List<MyTreeNode> children) {
this.children = children;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getText() {
return text;
}
public void setText(String text) {
this.text = text;
}
public Boolean getExpanded() {
return expanded;
}
public void setExpanded(Boolean expanded) {
this.expanded = expanded;
}
public Boolean getLeaf() {
return leaf;
}
public void setLeaf(Boolean leaf) {
this.leaf = leaf;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
springMVC 调用
/**
* 返回菜单JSON数据
*
* @param session
* @return
*/
@RequestMapping(value = "/test", produces = "text/plain;charset=UTF-8")
@ResponseBody
public Object test() {
List<KZ_GNLB> list = kz_gnlbService.selectAll();// 数据库全部节点
List<MyTreeNode> listTree = new ArrayList();// 树状节点全部数据
MyTreeNode rootNode = new MyTreeNode();// 根节点
rootNode.setId("0");
rootNode.setText("我的导航");
rootNode.setExpanded(true);
rootNode.setLeaf(false);
InitTree(rootNode,list);
listTree.add(rootNode);
Gson gson = new Gson();
String sss = gson.toJson(listTree).toString();
System.out.println(sss);
return sss;
}
private void InitTree(MyTreeNode pNode,List<KZ_GNLB> list)
{
MyTreeNode childNode;
for (int i=0; i < list.size(); i++)// 功能分类
{
if (list.get(i).getPGNID().equals(pNode.getId())) {
childNode = new MyTreeNode();
childNode.setId(list.get(i).getGNID());
childNode.setText(list.get(i).getGNMC());
childNode.setUrl(list.get(i).getURL());
List<MyTreeNode> childList=pNode.getChildren();
if(childList==null)
{
childList=new ArrayList<MyTreeNode>();
pNode.setChildren(childList);
}
childList.add(childNode);
InitTree(childNode,list);
}
}
List<MyTreeNode> childList=pNode.getChildren();
if (childList==null) {
pNode.setExpanded(false);
pNode.setLeaf(true);
} else {
pNode.setExpanded(true);
pNode.setLeaf(false);
}
}