隨筆-112  評論-73  文章-0  trackbacks-0

          今天看了一下MyFaces的tree2組件,想用它做一個菜單。

          看了一下例子。主要是這樣的:

          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中的一個變量。是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);對應的。表示這部分是渲染root的部分。這個"root"的名字可以自己定。但是兩者要一致。child同理。還可以根據情況設置其他的。

          TreeNodeBase的構造方法有三種:

          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)

          最后一個參數表示是否是未級節點。把XHTML中的代碼與bean 中的方法和構造方法聯系起來看就比較容易了。第一個參數是type,也就是<f:facet name="root">對應的如何渲染的部分;第二個參數是description,也就是tree要顯示的內容;第三個參數是treeNode的ID;第四個參數表示是否有下級節點。


          Technorati : ,

          posted on 2007-08-06 22:47 Libo 閱讀(1675) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 正宁县| 呼和浩特市| 巍山| 桐城市| 高雄县| 元朗区| 咸宁市| 乌什县| 贺州市| 静乐县| 霞浦县| 内黄县| 临清市| 荔浦县| 开平市| 奇台县| 达孜县| 华池县| 凤冈县| 偃师市| 黑龙江省| 太谷县| 大城县| 镇沅| 四会市| 望都县| 仙桃市| 彰化市| 鹤峰县| 木里| 利川市| 罗平县| 上栗县| SHOW| 嵊泗县| 钟祥市| 马关县| 云林县| 望都县| 曲周县| 栾城县|