今天看了一下MyFaces的tree2組件,想用它做一個(gè)菜單。
看了一下例子。主要是這樣的:
XHTML中的部分代碼:
<t:tree2 id="menuTree" value="#{menuBean.menuTree}" var="node"
clientSideToggle="true" varNodeToggler="t">
<f:facet name="root">#{node.description}</f:facet>
<f:facet name="child">
<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:outputLink value="/XiangYun/pages/user/list.jsf">#{node.description}</h:outputLink>
</h:panelGroup>
</f:facet>
</t:tree2>
其中:#{menuBean.menuTree}是menuBean中的一個(gè)變量。是org.apache.myfaces.custom.tree2.TreeNodeBase類型。
MenuBean.java
public class MenuBean {
public MenuBean(){
menuTree =new TreeNodeBase("root","displayName",false);
menuTree.getChildren().add(new TreeNodeBase("child","displayName1","id1",true));
menuTree.getChildren().add(new TreeNodeBase("child","displayName2","id2",true));
TreeNode _treeChild =new TreeNodeBase("child","displayName5",false);
_treeChild.getChildren().add(new TreeNodeBase("child","displayName5-1",true));
menuTree.getChildren().add(_treeChild);
menuTree.getChildren().add(new TreeNodeBase("child","displayName3","id3",true));
menuTree.getChildren().add(new TreeNodeBase("child","displayName4","id4",true));
}
private TreeNode menuTree;
public TreeNode getMenuTree() {
return menuTree;
}
public void setMenuTree(TreeNode menuTree) {
this.menuTree = menuTree;
}
}
其中頁面代碼中的:
<f:facet name="root">是與menuBean中的new TreeNodeBase("root","displayName",false);對(duì)應(yīng)的。表示這部分是渲染root的部分。這個(gè)"root"的名字可以自己定。但是兩者要一致。child同理。還可以根據(jù)情況設(shè)置其他的。
TreeNodeBase的構(gòu)造方法有三種:
TreeNodeBase()
TreeNodeBase(java.lang.String type, java.lang.String description, boolean leaf)
TreeNodeBase(java.lang.String type, java.lang.String description, java.lang.String identifier, boolean leaf)
最后一個(gè)參數(shù)表示是否是未級(jí)節(jié)點(diǎn)。把XHTML中的代碼與bean 中的方法和構(gòu)造方法聯(lián)系起來看就比較容易了。第一個(gè)參數(shù)是type,也就是<f:facet name="root">對(duì)應(yīng)的如何渲染的部分;第二個(gè)參數(shù)是description,也就是tree要顯示的內(nèi)容;第三個(gè)參數(shù)是treeNode的ID;第四個(gè)參數(shù)表示是否有下級(jí)節(jié)點(diǎn)。
Technorati : jsf, myfaces
posted on 2007-08-06 22:47
Libo 閱讀(1674)
評(píng)論(0) 編輯 收藏