<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    開花流水

    空山無人,水流花開。

    BlogJava 首頁 新隨筆 聯(lián)系 聚合 管理
      79 Posts :: 42 Stories :: 160 Comments :: 0 Trackbacks

    Entity部分關(guān)鍵代碼:

    Java代碼 
    1. public class PartType {  
    2.   
    3.     //屬性...  
    4.   
    5.     private PartType parent;  
    6.     private Set<PartType> children = new HashSet<PartType>();  
    7.   
    8.   
    9.     //屬性對應(yīng)的getter、setter......  
    10.   
    11.     @ManyToOne  
    12.     public PartType getParent() {  
    13.         return parent;  
    14.     }  
    15.   
    16.     public void setParent(PartType parent) {  
    17.         this.parent = parent;  
    18.     }  
    19.   
    20.     @OneToMany(fetch = FetchType.LAZY, mappedBy = "parent")  
    21.     public Set<PartType> getChildren() {  
    22.         return children;  
    23.     }  
    24.   
    25.     public void setChildren(Set<PartType> children) {  
    26.         this.children = children;  
    27.     }  
    28.       
    29.     public void addChildren(PartType pt) {  
    30.         this.children.add(pt);  
    31.     }  
    32.       
    33.           
    34. }  

     

    SessionBean代碼...... 

     

    Action部分關(guān)鍵代碼:

    Java代碼 
    1. @Name("ptAction")  
    2. @Scope(ScopeType.CONVERSATION)  
    3. public class PartTypeAction {  
    4.   
    5.     @Logger  
    6.     private Log log;  
    7.   
    8.     @In  
    9.     private IPartTypeManager ptManager;  
    10.   
    11.     @Out(required = false)  
    12.     private PartType selectpt;  
    13.   
    14.     public PartType getSelectpt() {  
    15.         return selectpt;  
    16.     }  
    17.   
    18.     public void setSelectpt(PartType selectpt) {  
    19.         this.selectpt = selectpt;  
    20.     }  
    21.   
    22.     /* 
    23.      * 遞歸節(jié)點(diǎn)樹 
    24.      */  
    25.     private TreeNode<PartType> addChild(TreeNode<PartType> curNode,  
    26.             PartType curPT) {  
    27.         curNode.setData(curPT);  
    28.         log.info("遍歷: " + curPT.getName());  
    29.         if (curPT.getChildren().size() > 0) {  
    30.             for (Iterator iterator = curPT.getChildren().iterator(); iterator  
    31.                     .hasNext();) {  
    32.                 PartType childptItem = (PartType) iterator.next();  
    33.                 TreeNode<PartType> childpt = new TreeNodeImpl<PartType>();  
    34.                 curNode.addChild(childptItem.getId(), childpt);// 子節(jié)點(diǎn)加到當(dāng)前節(jié)點(diǎn)下  
    35.                 addChild(childpt, childptItem);  
    36.             }  
    37.         }  
    38.         return curNode;  
    39.     }  
    40.   
    41.     /* 
    42.      * 構(gòu)建樹 
    43.      */  
    44.     @Begin(join = true)  
    45.     public TreeNode<PartType> getPTTree() {  
    46.         log.info("構(gòu)建PartType Tree");  
    47.         PartType ptroot = ptManager.getRootPartType();//調(diào)用SessionBean中的方法以獲取父節(jié)點(diǎn)  
    48.   
    49.         TreeNode<PartType> root = new TreeNodeImpl<PartType>();  
    50.         this.addChild(root, ptroot);  
    51.         TreeNode<PartType> vroot = new TreeNodeImpl<PartType>();  
    52.         vroot.addChild(root.getData().getId(), root);  
    53.         return vroot;  
    54.   
    55.     }  
    56.   
    57.     /* 
    58.      * 選擇一個(gè)節(jié)點(diǎn)觸發(fā)事件 
    59.      */  
    60.     @Begin(join = true)  
    61.     public void processSelection(NodeSelectedEvent event) {  
    62.         UITree tree = getTree(event);  
    63.         if (tree != null) {  
    64.             selectpt = (PartType) tree.getTreeNode().getData();  
    65.             log.info("選中節(jié)點(diǎn):" + selectpt.getName());  
    66.             this.setSelectpt(selectpt);  
    67.         }  
    68.     }  
    69.   
    70.     private UITree getTree(FacesEvent event) {  
    71.         UIComponent component = event.getComponent();  
    72.         if (component instanceof UITree) {  
    73.             return ((UITree) component);  
    74.         }  
    75.   
    76.         if (component instanceof UITreeNode) {  
    77.             return ((UITree) component.getParent());  
    78.         }  
    79.   
    80.         return null;  
    81.     }  
    82.   
    83. }  

     

    頁面代碼:

    Jsf代碼 
    1. <rich:tree swidth="100%" value="#{ptAction.PTTree}" var="item"  
    2.     switchType="ajax" reRender="userdata"  
    3.     nodeSelectListener="#{ptAction.processSelection}"  
    4.     ajaxSubmitSelection="true">  
    5.     <rich:treeNode>  
    6.         <h:outputText value="#{item.name}" />  
    7.     </rich:treeNode>  
    8. </rich:tree>  



                                                                                                                                                                            ————引用自http://q-wong.javaeye.com/?show_full=true
    posted on 2009-06-06 18:02 開花流水 閱讀(1281) 評論(0)  編輯  收藏

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


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 曰批免费视频播放在线看片二 | 最近高清国语中文在线观看免费| 无人视频在线观看免费播放影院| 久久久久亚洲AV无码专区首JN| 亚洲综合区小说区激情区| 四虎www成人影院免费观看| 无码午夜成人1000部免费视频| 国产亚洲人成在线影院| 亚洲一区精品视频在线| 亚洲午夜免费视频| 中文字幕精品亚洲无线码一区 | 亚洲毛片免费观看| 亚洲AV无码专区国产乱码4SE | 国产91成人精品亚洲精品| 亚洲偷自精品三十六区| 久久夜色精品国产噜噜亚洲AV| 亚洲AV无码一区二区二三区软件| 亚洲一区二区视频在线观看| 免费人成在线观看播放国产| 免费无码一区二区三区蜜桃大 | 国产亚洲人成在线播放| 午夜在线a亚洲v天堂网2019| 亚洲专区中文字幕| 亚洲狠狠ady亚洲精品大秀| 久久国产精品亚洲综合| 亚洲成av人影院| 亚洲国产精品无码AAA片| 国产亚洲一区二区在线观看| 久久亚洲国产精品五月天婷| 亚洲综合网站色欲色欲| 亚洲一区二区三区在线视频| 亚洲中文字幕日产乱码高清app| 亚洲综合激情另类专区| 国产精品亚洲综合一区| 在线亚洲精品福利网址导航| 亚洲综合色区在线观看| 色噜噜AV亚洲色一区二区| 国产aⅴ无码专区亚洲av麻豆| 精品亚洲一区二区| 久久久久亚洲AV无码永不| 337p日本欧洲亚洲大胆精品555588 |