树控件在web页面中一个将分层数据以树形结构进行显示。根据 easyUI API可以得知,树控件的每个节点都具备以下属性
同时,树控件的数据结构是下面的形式
- [{
- "id":1,
- "text":"Folder1",
- "iconCls":"icon-save",
- "children":[{
- "text":"File1",
- "checked":true
- },{
- "text":"Books",
- "state":"open",
- "attributes":{
- "url":"/demo/book/abc",
- "price":100
- },
- "children":[{
- "text":"PhotoShop",
- "checked":true
- },{
- "id": 8,
- "text":"Sub Bookds",
- "state":"closed"
- }]
- }]
- },{
- "text":"Languages",
- "state":"closed",
- "children":[{
- "text":"Java"
- },{
- "text":"C#"
- }]
- }]
从上面的代码可以看出,树控件的数据是json类型的,属性children也是json类型的。
下面就以springMVC JPA为基础,实现树形控件。
一、数据设计

二、前台JSP,很简单,就一div就可以。
三、JQ实现easyUI
- $(function(){
- $("#t1").tree({
- url:$('#ctx').val()+'/menu/getMenu.do'
- });
- });
四、后台代码实现
数据库查询
-
-
-
-
-
- public List<MenuPo> getMenuByParentId(String parentId) {
-
- return menuDaoJpa.findByParentId(parentId);
- }
controller层逻辑编辑
-
-
-
-
-
-
- @RequestMapping("/getMenu.do")
- @ResponseBody
- public List<MenuVo> getMenu(HttpServletRequest request, HttpServletResponse response) {
-
-
- List<MenuPo> menuLst = menuService.getMenuByParentId("0");
-
- List<MenuVo> menuList = new ArrayList<MenuVo>();
-
-
- MenuVo menuVo = new MenuVo();
-
-
- MenuVo child;
-
- List<MenuVo> children = new ArrayList<MenuVo>();
-
- for(MenuPo menuPo : menuLst){
- menuVo = new MenuVo();
-
-
- String id = menuPo.getParentId();
-
- String menuId = menuPo.getMenuId();
-
- child = new MenuVo();
-
-
- if ("0".equals(id)) {
-
- menuVo.setId(String.valueOf(menuPo.getId()));
-
- menuVo.setText(menuPo.getName());
-
- children = new ArrayList<MenuVo>();
-
- List<MenuPo> childLst = menuService.getMenuByParentId(menuId);
- for(MenuPo menuChild : childLst){
-
- child.setId(menuChild.getMenuId());
-
- child.setText(menuChild.getName());
- children.add(child);
- menuVo.setChildren(children);
- }
- }
- menuList.add(menuVo);
- }
- return menuList;
- }
运行结果
