function Createtreemenu () {//Create a panel of a tree
var treemenu = new Ext.tree.TreePanel ({
Lines:true,
minsize:150,
Border:false,
Root:new Ext.tree.AsyncTreeNode ({text: ' root '}),
Loader:new Ext.tree.TreeLoader ({dataurl: '/extdemo/getdata?action=treemenu '})
});
var win = new Ext.window ({
width:600,
height:400,
Items: [Treemenu]
});
Treemenu.expandall ();
Win.show ();
}
The dataurl corresponding servlet in loader invokes a method of generating JSON as follows:
Private String Gettreemenu () {
list<menu> list = new arraylist<menu> ();
for (int i = 0; i < 3; i++) {
Menu menu = new menu ();
Menu.seturl (NULL);
Menu.setid ("id_" + i);
Menu.settext ("menu" + i);
Menu.setleaf (FALSE);
for (int j = 0; J < 3; J + +) {
Menu submenu = new menu ();
Submenu.seturl ("/extdemo/getdata");
Submenu.setid (i + "" + j);
Submenu.settext ("Sub-menu" + j);
Submenu.setleaf (TRUE);
Menu.appendchild (submenu);
}
List.add (menu);
}
return Jsonarray.fromobject (list). ToString ();
}
The menu code in Gettreemenu is as follows:
public class Menu {
The names of the following fields must be this way because they correspond to the attributes of the TreeNode in ext.
Private String ID;
private String text;
Private String URL;
Private Boolean leaf;
Private list<menu> children = new arraylist<menu> ();
public void AppendChild (Menu submenu) {
This.children.add (submenu);
}
/** also has a lot of get and set methods
*/
}