easyui 中 的同步树(2)

来源:互联网 发布:apache纪录片 编辑:程序博客网 时间:2024/06/08 15:17

在上一篇文章中我写的那个同步树,我是使用了三张表。这次我是把三张表合成一张表,表名是t_academy,实体类名是TAcademy。

1.先看下这个表结构
这里写图片描述
这个表只有三列,id不用解释,text是节点的名称,pid是父节点的id。其中id是自动增长的。

2.看下实体类TAcademy

@Entity@Table(name = "t_academy", catalog = "xiaonei")public class TAcademy implements java.io.Serializable {    // Fields    private Integer id;    private String text;    private String pid;    private List<TAcademy> children;    // Constructors    /** default constructor */    public TAcademy() {    }    @Column(name = "pid")    public String getPid() {        return pid;    }    public void setPid(String pid) {        this.pid = pid;    }    @Transient    public List<TAcademy> getChildren() {        return children;    }    public void setChildren(List<TAcademy> children) {        this.children = children;    }    /** full constructor */    public TAcademy(String text) {        this.text = text;    }    // Property accessors    @Id    @GeneratedValue(strategy = IDENTITY)    @Column(name = "id", unique = true, nullable = false)    public Integer getId() {        return this.id;    }    public void setId(Integer id) {        this.id = id;    }    @Column(name = "text", length = 36)    public String getText() {        return this.text;    }    public void setText(String text) {        this.text = text;    }}//注意:children字段是不和数据库对应的!!!,是用来存放它的子节点的!

3.看下controller

/*     * 这种方法也是不行的,因为这种方法只能在专业树的中间部分添加节点,     * 这样写着个专业树就是一个死树, 所以再进行改进,需要用到递归了!!!     * */    @RequestMapping("/_getAllTree")    public String _getAllTree(HttpServletRequest request,HttpServletResponse response) throws Exception{        //获取一级目录academy        List academyList_1 = treeService.getAllTree(0);        //遍历一级目录,并获取二级目录        Iterator academyIt_1 = academyList_1.iterator();        while(academyIt_1.hasNext()){            TAcademy academy_1 = (TAcademy) academyIt_1.next();            List academyList_2 = treeService.getAllTree(academy_1.getId());            //遍历二级目录,并获取三级目录            Iterator academyIt_2 = academyList_2.iterator();            List addAcademyList_2 = new ArrayList();            while(academyIt_2.hasNext()){                TAcademy academy_2 = (TAcademy) academyIt_2.next();                addAcademyList_2.add(academy_2);                List academyList_3 = treeService.getAllTree(academy_2.getId());                Iterator academyIt_3 = academyList_3.iterator();                List addAcademy_3 = new ArrayList();                while(academyIt_3.hasNext()){                    TAcademy academy_3 = (TAcademy) academyIt_3.next();                    addAcademy_3.add(academy_3);                }                academy_2.setChildren(addAcademy_3);            }            academy_1.setChildren(addAcademyList_2);        }        JSONArray jn = JSONArray.fromObject(academyList_1);        response.setContentType("text/html;charset=utf-8");        response.getWriter().println(jn.toString());        return null;    }

4.效果图
这里写图片描述

注意:前台代码是和上一篇中的一样的。

0 0
原创粉丝点击