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

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

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

    隨筆 - 170  文章 - 536  trackbacks - 0
    <2005年12月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    常用鏈接

    我參與的團隊

    隨筆分類(103)

    搜索

    •  

    積分與排名

    • 積分 - 413988
    • 排名 - 135

    最新評論

    閱讀排行榜

    通過一次小小的實踐,終于了解如何使用tomahawk中的tree2這個組件了,并且寫了小段程序,從xml中讀取樹的結構,生成一個tree,不過tree2不能直接和xml綁定是一個遺憾,那樣就會省不少事情了。記下一點心得,以供后來參考了。

             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://m.tkk7.com/Files/steady/catalog.rar

    posted on 2005-12-01 09:26 steady 閱讀(10327) 評論(32)  編輯  收藏 所屬分類: JSF & Myfaces

    FeedBack:
    # re: JSF Tree2 實踐 2005-12-03 15:06 山人
    你好,請問如何在字節點上設置超鏈接。比如點樹的任一節點我想讓頁跳到我指定的頁(x.jsp?id=123).
    急用,請老兄幫幫忙.
    我的email:taoyinzhou@hotmail.com  回復  更多評論
      
    # re: JSF Tree2 實踐 2005-12-04 10:15 steady
    附上我頁面的代碼:
    http://m.tkk7.com/Files/steady/catalogview.rar
    我是用commandLink來做的鏈接,按照你的要求,可以用outputLink來做鏈接。
    把我相應的代碼替換掉就可以了。
    后面的id=XXX,是在<f:param>里面指定的并且嵌套在outputLink里面。  回復  更多評論
      
    # re: JSF Tree2 實踐 2005-12-10 08:40 山人
    你好,我那個問題如你說的已經解決了。

    我是在做一個翻版的項目,以前是我用.net做(asp.net+C#+NHibernate+sqlServer)的,現要把它做成跨平臺的java版,所以選用了jsf(myfaces)+spring+hibernate方案。整了快一個月了,終于調試通過了用戶認證和功能樹生產(數據庫用mysql),感覺java是比.net復雜多了。
    今天開始學用myfaces的dataScroller組件。  回復  更多評論
      
    # re: JSF Tree2 實踐 2005-12-10 14:04 steady
    在現階段,JSF在標準,實現,工具支持,第三方組件上要比ASP.NET差不少,特別是擴展,除了tomahawk好一點外就沒有太多又免費又好用的組件了。工具上,我目前看到最好用的就是BEA Workshop Studio(M7 NitroX),最新版本是 3.0M2,支持最新發布的tomahawk的所有組件,可視化編輯功能也比較好。  回復  更多評論
      
    # re: JSF Tree2 實踐 2005-12-10 14:32 山人
    沒有用過 BEA Workshop Studio(M7 NitroX) ,我現在用eclipse3.1+myEclipse4.0(破解版).
    JSF Myaces(tomahawk)雖然目前資源不多,不過我還是看好的。  回復  更多評論
      
    # re: JSF Tree2 實踐 2005-12-10 16:45 steady
    我們這里做項目時用的是Exadel,感覺是對JSF支持的算是僅次于Workshop,目前來看MyEclipse感覺還是比較適合做struts時代的東西。  回復  更多評論
      
    # re: JSF Tree2 實踐 2005-12-20 17:13 山人
    java.lang.IllegalStateException: Encountered a node [0] + with an illogical state. Node is expanded but it is also considered a leaf (a leaf cannot be considered expanded.
    我在用tree2時出現如上錯誤,不知如何解決。
    我把部門表生成tree2樹顯示,在新增和修改節點時顯示正常;但我在刪除節點時如果當前節點下有兩個以上的子節點運行正常,當其下只有一個子節點時就出以上錯誤了。
    這個錯誤出現后我關閉IE從新再打開此頁,功能樹又顯示正常了。  回復  更多評論
      
    # re: JSF Tree2 實踐 2005-12-20 18:15 steady
    在Myfaces的JIRA上有這樣的錯誤報告,我也碰到過的,是一個bug,現在新的nightly build中沒有這樣的問題,但因為不是一個release版本,所以其他地方可能會有一些bug。  回復  更多評論
      
    # re: JSF Tree2 實踐 2005-12-21 09:38 山人
    謝謝
    問題解決了。我下了一個 myfaces-20051215 版本測試正常  回復  更多評論
      
    # re: JSF Tree2 實踐 2006-01-04 09:48 山 人
    你好,我在用戶登錄以后,想記錄下用戶名、用戶ID、等信息,以備在登錄后的其它頁面中可以取出用戶ID。在用純jsp(java代碼寫在jsp頁中)寫代碼時,可以在登錄頁面后把ID等定義為session如下:
    session.putValue("UserID", Integer.toString(intUSERID)); //用戶ID
    session.putValue("UserName",User_Name);//用戶登錄名
    session.putValue("UserGroupID","0");//用戶組ID
    我在登錄后的其它頁面中只用取出以上session就OK了。

    請問在jsf中實現同樣的功能應該如何做?配置如下,已經可以定義session,只是不清楚在登錄后的其它Bean中如何取出session,因為我的功能樹要根據誰登錄的取對應的功能。

    <managed-bean>
    <description>
    用戶登錄
    </description>
    <managed-bean-name>sysLogin</managed-bean-name>
    <managed-bean-class>com.inphit.pms.web.system.SysLogin</managed-bean-class>
    <managed-bean-scope>session</managed-bean-scope>
    <managed-property>
    <property-name>serviceLocator</property-name>
    <value>#{ServiceLocatorImpl}</value>
    </managed-property>
    </managed-bean>  回復  更多評論
      
    # re: JSF Tree2 實踐 2006-01-13 11:07 巨土無比
    你好,問個基礎的問題:
    rendered="#{t.nodeExpanded} 和 value="#{node.description} 里面的t和node是不是<t:tree2 value="#{catalog.node}" var="node" id="clientside" varNodeToggler="t" > 里面的var和varNodeToggler? 這兩個有什么區別嗎? nodeExpanded和description這兩個方法是在哪里定義的?  回復  更多評論
      
    # re: JSF Tree2 實踐 2006-01-13 11:13 steady
    第一個var表示tree中的一個節點,即backing bean中new出來的new TreeNodeBase("folder", name, id, false);
    varNodeToggler指的是當前tree節點的狀態,展開或者關閉,可以參考javadoc中org.apache.myfaces.custom.tree2.TreeStateBase,這里使用了它的isNodeExpanded方法。   回復  更多評論
      
    # re: JSF Tree2 實踐 2006-01-13 11:33 巨土無比
    我寫了一個簡單樹,但是無法展開,只能顯示根節點,幫忙看看哪里的問題:
    jsp:
    <f:view>
    <t:tree2 id="clientTree" value="#{tree.treeData}" var="node" varNodeToggler="t" showRootNode="false">
    <f:facet name="menu">
    <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>

    <f:facet name="item">
    <h:panelGroup>
    <h:commandLink immediate="true" styleClass="#{t.nodeSelected ? 'documentSelected':'document'}" actionListener="#{t.setNodeSelected}">
    <t:graphicImage value="images/document.png" border="0"/>
    <h:outputText value="#{node.description}"/>
    </h:commandLink>
    </h:panelGroup>
    </f:facet>
    </t:tree2>
    </f:view>
    -------------------------------------
    Tree.java:
    public TreeNode getTreeData()
    {
    TreeNode treeData = new TreeNodeBase("root", "根", false);

    // construct a set of fake data (normally your data would come from a database)

    // populate Frank's portion of the tree
    TreeNodeBase menuNode = new TreeNodeBase("menu", "產品管理", false);
    menuNode.getChildren().add(new TreeNodeBase("item", "錦囊", true));
    treeData.getChildren().add(menuNode);

    // populate Betty's portion of the tree
    menuNode = new TreeNodeBase("menu", "后綴管理", false);
    menuNode.getChildren().add(new TreeNodeBase("item", "神秘園", true));
    treeData.getChildren().add(menuNode);

    menuNode = new TreeNodeBase("menu", "用戶統計", false);
    menuNode.getChildren().add(new TreeNodeBase("item", "伊甸園", true));
    treeData.getChildren().add(menuNode);

    menuNode = new TreeNodeBase("menu", "其它", false);
    menuNode.getChildren().add(new TreeNodeBase("item", "預警設置", true));
    treeData.getChildren().add(menuNode);

    return treeData;
    }  回復  更多評論
      
    # re: JSF Tree2 實踐 2006-01-13 11:34 巨土無比
    只能顯示:
    產品管理

    后綴管理

    用戶統計

    其它

    但是無法展開,點擊后沒有任何反應  回復  更多評論
      
    # re: JSF Tree2 實踐 2006-01-13 11:38 巨土無比
    現在可以了,剛才是用的firefox,現在用的是ie就可以了,有意思,還有這限制呢  回復  更多評論
      
    # re: JSF Tree2 實踐 2006-01-13 11:51 steady
    Tree2本身并沒有這個問題的,我一直是在FireFox下跑的,一直很正常,但是Myfaces 1.1.1版本的Tree2確實有bug,可以拿比較新的源碼Build一下,應該能夠解決這個問題。  回復  更多評論
      
    # re: JSF Tree2 實踐 2006-01-13 11:52 巨土無比
    又有問題了,用ie的話,如果刷新一下,又報錯說“網頁有錯誤”,然后就又無法展開了,只有新打開一個ie或者在原來的ie上回車才可以正常顯示,請問這是什么原因呢?  回復  更多評論
      
    # re: JSF Tree2 實踐 2006-01-13 11:55 巨土無比
    最新的myfaces就是1.1.1啊,你是說用nightly builds?我的qq:601998086,加我吧,聊起來方便,驗證信息填myfaces吧,呵呵。  回復  更多評論
      
    # re: JSF Tree2 實踐 2006-01-14 07:52 kingwell
    tree2不是太穩定
    做過兩個tree交互移動其中一個tree的node到另外一個tree上面,有時候會發生illegalstate的問題,感覺不是太穩定  回復  更多評論
      
    # re: JSF Tree2 實踐 2006-03-11 09:14 hunter
    tree2的value綁定javabean的屬性,那屬性類型到底是TreeModel,還是TreeNode?在有的例子中用的是TreeNode(見上文),有的用TreeModel(見Tree2 Explained 解析Tree2一文)。
    我覺得應該用TreeModel。  回復  更多評論
      
    # re: JSF Tree2 實踐 2006-03-31 10:20 wanfan
    @巨土無比
    我像上面那樣做 也出現這樣的問題 只能顯示根節點 不能顯示葉子節點   回復  更多評論
      
    # re: JSF Tree2 實踐 2006-04-26 11:00 128kj_com
    非常想與貴站做友情鏈接,誠邀您到我站自助添加,立即生效,首頁顯示。
    http://www.128kj.com  回復  更多評論
      
    # re: JSF Tree2 實踐 2006-05-23 13:36 huyan722
    @巨土無比
    你可能缺少Filter,我也遇到過這樣的問題但是在web.xml中加入Filter后就解決了
    <filter>
    <filter-name>MyFacesExtensionsFilter</filter-name>
    <filter-class>org.apache.myfaces.component.html.util.ExtensionsFilter</filter-class>
    <init-param>
    <param-name>maxFileSize</param-name>
    <param-value>20m</param-value>
    <description>Set the size limit for uploaded files.
    Format: 10 - 10 bytes
    10k - 10 KB
    10m - 10 MB
    1g - 1 GB
    </description>
    </init-param>
    </filter>

    <!-- extension mapping for adding <script/>, <link/>, and other resource tags to JSF-pages -->
    <filter-mapping>
    <filter-name>MyFacesExtensionsFilter</filter-name>
    <!-- servlet-name must match the name of your javax.faces.webapp.FacesServlet entry -->
    <servlet-name>Faces Servlet</servlet-name>
    </filter-mapping>

    <!-- extension mapping for serving page-independent resources (javascript, stylesheets, images, etc.) -->
    <filter-mapping>
    <filter-name>MyFacesExtensionsFilter</filter-name>
    <url-pattern>/faces/myFacesExtensionResource/*</ url-pattern>
    </filter-mapping>
    如果你在項目中沒有使用到Myfaces的擴展組件(t:開頭的),則你不需要配置這個Filter.
    可是,如果你用了Myfaces的擴展組件,你必須為你的web程序配置這個Filter.
      回復  更多評論
      
    # re: JSF Tree2 實踐 2006-11-18 20:54 jsf_beginner
    請問例子的BaseBean是哪個包里的?
      回復  更多評論
      
    # re: JSF Tree2 實踐 2007-01-12 22:35 lion.huang
    你好,能把那個backbean原代碼傳我一份嗎?
    謝謝!
    email:lion_6@163.com
    QQ:262542058  回復  更多評論
      
    # re: JSF Tree2 實踐[未登錄] 2007-03-15 17:23 K
    請問能不能給樹的節點加上右鍵菜單?  回復  更多評論
      
    # re: JSF Tree2 實踐 2007-07-11 12:44 仙子
    用TREE2做一個帶選擇框的樹,如何做到點上一級的選擇框,自動點選下一級的選擇框  回復  更多評論
      
    # re: JSF Tree2 實踐[未登錄] 2007-09-19 00:02 simon
    麻煩給我發一份myfaces-20051215 ,simon_cheng1@hotmail.com
    多謝  回復  更多評論
      
    # re: JSF Tree2 實踐 2007-11-14 17:10 wbaihp
    請問我按照你們的說法作了一下,為什么我的<t:graphicImage value="../images/yellow-folder-open.png"
    rendered="#{t.nodeExpanded}" border="0" />中提示
    t cannot be resolved  回復  更多評論
      
    # re: JSF Tree2 實踐 2008-02-01 08:43 legend_only
    現在我展開TREE2樹的根結點,怎么才能做到呢???

    還有個問題就是樹的結點展開后,在關閉,前面的圖標就不變了,還是展開時的.
    頁面剛載入的時候是正確的,是關閉的圖標,展開后就回不去了~~  回復  更多評論
      
    # re: JSF Tree2 實踐 2008-05-20 13:55 bryan
    你好,我想問一下的是我用
    <h:commandLink immediate="true" styleClass="#{t.nodeSelected ? 'documentSelected':'document'}" actionListener="#{t.setNodeSelected}"
    action="#{treeMenu.nodeClicked}" target="content">
    <t:graphicImage value="images/document.png" border="0"/>
    <h:outputText value="#{node.description}"/>
    <f:param name="nodeid" value="#{node.identifier}"/>
    </h:commandLink>

    在nodeClicked我用的是返回nodeid的值,再通過face-config.xml中的設置導航到一個頁面上,不知還有沒有更好的辦法啊?想知道你的nodeClicked的事件代碼是怎樣啊?
    我現在的是用一個框架將主頁面分為三個部分,通過點擊樹形菜單導航到相應的功能頁面  回復  更多評論
      
    # re: JSF Tree2 實踐 2008-05-20 13:56 bryan
    我的聯系郵箱chizeng@126.com  回復  更多評論
      
    主站蜘蛛池模板: 亚洲不卡AV影片在线播放| 香港一级毛片免费看| 亚洲A∨无码无在线观看| 亚洲国产高清在线一区二区三区| 在线看片无码永久免费aⅴ| 在线精品亚洲一区二区三区| 亚洲精品无码永久中文字幕| 日韩亚洲国产高清免费视频| 久久久久亚洲精品无码网址色欲| 午夜不卡久久精品无码免费| 亚洲欧洲校园自拍都市| 9久9久女女免费精品视频在线观看| 久久久久亚洲av无码专区蜜芽| 韩国亚洲伊人久久综合影院| AV无码免费永久在线观看| 麻豆亚洲AV永久无码精品久久| 日本道免费精品一区二区| 亚洲AV无码久久精品成人| 99免费精品视频| 亚洲AV色香蕉一区二区| 日韩电影免费观看| 99亚洲精品高清一二区| 91短视频免费在线观看| 亚洲人成人77777在线播放| 国产成人福利免费视频| 亚洲字幕AV一区二区三区四区| 毛片在线看免费版| 一级黄色免费大片| 亚洲天天在线日亚洲洲精| 成人免费AA片在线观看| 亚洲一区电影在线观看| 午夜视频免费成人| 人人公开免费超级碰碰碰视频 | 色拍自拍亚洲综合图区| 免费观看AV片在线播放| 国产亚洲福利精品一区二区| 国产亚洲精品资在线| 一本无码人妻在中文字幕免费| 国产亚洲综合视频| 亚洲国产亚洲综合在线尤物| 免费看少妇作爱视频|