在页面中dtree2的标{:(x)
<t:tree2 id="sortTree" var="node" varNodeToggler="t" showRootNode="false" value="#{tree.treeData}">



</t:tree2> 建立托管Bean,用于填充tree?BR>
public class TreeBacker implements Serializable


{
public TreeNode getTreeData ( )

{
TreeNode treeData = new TreeNodeBase ( "foo-folder" , "Inbox" , false ) ;

TreeNodeBase personNode = new TreeNodeBase("person", "Eddie L", false);
//personNode.getChildren().add(new TreeNodeBase("document","Eddie doc one", true));
TreeNodeBase doc = new TreeNodeBase("document","Eddie doc one", true);
doc.setIdentifier("No.1");
personNode.getChildren().add(doc);
treeData.getChildren().add(personNode);
System.out.println ( "Create Tree 





..ok" ) ;
return treeData ;
}
}
其中TreeNodeBase personNode = new TreeNodeBase("person", "Eddie L", false);中的"person"的作用是表示渲染得时候显CZ么样式,
跟页面中<f:facet name="person"></f:facet>相对应?BR>在页面中
<f:facet name="person">
<h:panelGroup>
<f:facet name="expand">
<t:graphicImage value="../images/person.png" rendered="#{t.nodeExpanded}" border="0" />
</f:facet>
<f:facet name="collapse">
<t:graphicImage value="../images/person.png" rendered="#{!t.nodeExpanded}" border="0" />
</f:facet>
<h:outputText value="#{node.description}" styleClass="nodeFolder" />
</h:panelGroup>
</f:facet>
<t:graphicImage value="../images/person.png" rendered="#{t.nodeExpanded}" border="0" />昄Tree每一个节点的囄。rendered属性的意思是是否渲染的意思,
jsf中渲染的意思是把jsflg?wi)当前的状态{换成html。在jsf的生命周期里Q渲染响应在最后一个周期,renderedgؓ(f)false在渲染相应这个周期就不运行?BR>在处理叶子节点上Q需要特D的注意。因为对叶子节点是需要操作的。可能需要点d子节点连接到一个页面,或者执行某些action{?BR>
<f:facet name="document">
<h:panelGroup>
<h:commandLink immediate="true" styleClass="#{t.nodeSelected ? 'documentSelected':'document'}" actionListener="#{t.setNodeSelected}" action="#{tree.okListener}" id="clickbutton">
<t:graphicImage value="../images/document.png" border="0" />
<h:outputText value="#{node.description}" />
<f:param name="docNum" value="#{node.identifier}" />
</h:commandLink>
</h:panelGroup>
</f:facet> commandLink标记可以有n个参敎ͼ参数分ؓ(f)参数名和参数倹{在E序里可以读取?BR>~写action事gQokListener
FacesContext context = FacesContext.getCurrentInstance ( ) ;//取得上下?/SPAN>

String a = context.getExternalContext ( ).getRequestParameterMap ( )
.get ( "docNum" ).toString ( ) ;
a的值就是docNum的倹{?BR>identifier的值在创徏?wi)的时候一起加q去的:(x)
TreeNodeBase doc = new TreeNodeBase("document","Eddie doc one", true);
doc.setIdentifier("No.1");
q样。一个tree2的应用基本就ok了?/P>
]]>