JSF Tree2 实践

tree2的操作分为两部分,一部分是在页面中通过tag定义样式相关的东西,一部分就是通过编程添加树的节点,起初看了sample以后总是以为这东西有多么的复杂,其实逻辑是很简单的,只是sample中定义了多种不同的样式的节点,看上去很复杂而已。

下面附上我对 sample 简化过的这段 tag 来说明一下。
< t :tree2 value= " #{ catalog.node } " var= "node" id= "clientside" varNodeToggler= "t" >
    < f :facet name= "folder" >
        < h :panelGroup>
            < f :facet name= "expand" >
                < t :graphicImage value= "images/yellow-folder-open.png" rendered= " #{ t.nodeExpanded } " border= "0" />
            </ f :facet>
            < f :facet name= "collapse" >
                < t :graphicImage value= "images/yellow-folder-closed.png" rendered= " #{ !t.nodeExpanded } " border= "0" />
            </ f :facet>
            < h :outputText value= " #{ node.description } " />
        </ h :panelGroup>
    </ f :facet>
</ t :tree2>
tree2 的主 tag 定义了 tree 的根节点和一些相关的参数。嵌套的那个 facet 定义了一种节点的样式,包括展开与关闭时的图片,以及显示的文字内容。
在程序里面,我们 root TreeNodeBase = new TreeNodeBase(…) 来创建一个 root 节点,然后通过 root.getChildren().add(new TreeNodeBase(…)) 为其添加子节点,任何一个节点都可以添加任意多的子节点,通过这样的操作,我们可以很容易的生成一个 tree 的结构了,实际上,这个 tree 的结构是通过递归从 xml 中读取出来,生成一个和 xml tree 完全相同的结构。
除了明白如何去用这个 tree2 之外的收获就是,终于明白了如何去通过递归方法遍历一个树形结构,虽然在学校里学过遍历的算法,也抄过例程,但从来没有理解过是怎么一回事,终于在实践中理解了,实践才是软件的根本之道。
   程序的其它部分放在附件里面了,如果有兴趣了可以和我讨论tree2,讨论其它JSF的东西。
   http://www.blogjava.net/Files/steady/catalog.rar
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值