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

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

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

    寧靜以思遠

    Java使人內心寧靜

    BlogJava 首頁 新隨筆 聯系 聚合 管理
      8 Posts :: 0 Stories :: 17 Comments :: 0 Trackbacks

    2007年3月20日 #

    以前在公司,平臺組已經把組件都給我們開發好了,對于界面沒有花太多的時間研究。近日想自己做個小系統,還是用比較擅長的JSF+Hibernate+Spring。考慮Facelet的模板功能,這次想嘗試一下。結果,一個Tree2就把我納悶了好一會。
    從網上找了篇文章,試著依樣畫葫蘆,做了模板頁,分top,left,content三塊布局,left自然就是tree2菜單了。
    首先看一下模板頁:
    template.xthml
    1 <div id="left">
    2          <ui:insert name="left">
    3                     <ui:include src="leftmenu.xhtml"></ui:include>
    4          </ui:insert>
    5 </div>
    6 <div id="content" class="left_content">
    7          <ui:insert name="content">Content</ui:insert>
    8 </div>
    其中左邊菜單:
    leftmenu.xhtml
     1 <t:tree2 id="serverTree" value="#{calendarBean.treeData}" var="node" varNodeToggler="t" clientSideToggle="false" showRootNode="true">
     2                            
     3                             <f:facet name="document">
     4                                 <h:panelGroup>
     5                                     <h:commandLink immediate="true" styleClass="#{t.nodeSelected ? 'documentSelected':'document'}" action="link_page" actionListener="#{t.setNodeSelected}">
     6                                         <t:graphicImage value="/images/document.png" border="0"/>
     7                                         <h:outputText value="#{node.description}"/>
     8                                         <f:param name="docNum" value="#{node.identifier}"/>
     9                                     </h:commandLink>
    10                                 </h:panelGroup>
    11                             </f:facet>
    12  </t:tree2>
    其中backingBean代碼如下,配置有效范圍為session
    public class calendarBean {

        
    private TreeData treeData;

        
    private Date secondDate;

        
    public Date getSecondDate() {
            
    return secondDate;
        }

        
    public void setSecondDate(Date secondDate) {
            
    this.secondDate = secondDate;
        }

        
    public TreeData getTreeDate() {
           
    if (null == treeData) {
                TreeNode treeData 
    = new TreeNodeBase("foo-folder""Inbox"false);
                ......
           }
           
    return treeData;
    }
    ......
    }

    這里為了方便測試,故意把commandLink的action指向link_page導航,link_page配置為:
    1 <navigation-rule>
    2     <from-view-id>/treeSample2.xhtml</from-view-id>
    3     <navigation-case>
    4         <from-outcome>link_page</from-outcome>
    5       <to-view-id>/treeSample2link.xhtml</to-view-id>
    6     </navigation-case>
    7   </navigation-rule>
    treeSample2.xhtml和treeSample2link.xhtml分別為兩個使用了template.xhtml模板的頁面,顯然它們都用到了菜單。

     運行后,首先打開treeSample.xhtml,非常成功,菜單出來了,而且由于使用了Server端樹,每次打開子節點,都會提交到服務器,頁面刷新后,除了正在操作的節點,其他節點也都保持原來的狀態。

    但是,當我點擊節點,跳轉到treeSample2link.xhtml時,問題出來,所有節點都折疊起來,而并沒有保持我原來頁面的狀態。這說明從一個頁面跳轉到另一個頁面時,節點狀態并沒有被傳遞過去。
    有些想不明白,既然backingbean是session的,為什么沒有記錄節點的狀態呢?網上搜了些資料,很少有提到關于狀態的。myface的wiki中似乎也找不到類似的問題。無奈之下,只能直接看tree2的代碼,終于發現了問題所在。原來我有個TreeState接口存儲節點狀態的,而它又是被set到treeModel的,而我的代碼中只使用了treeData,沒有給它包裝成treeModel。Tree2中提供了treeModel的一個實現treeModelBase,直接使用就可以了。于是乎,改一下代碼:
     1 public class calendarBean {
     2   
     3       private TreeModel personTreeModel;
     4   
     5       public TreeModel getPersonTreeModel() {
     6           if (null == personTreeModel) {
     7               TreeNode treeData = new TreeNodeBase("foo-folder""Inbox"false);
     8                  
     9               personTreeModel = new TreeModelBase(treeData);
    10           }
    11         return personTreeModel;
    12     }
    13  
    14 }
    改一下綁定:
    1  <t:tree2 id="serverTree" value="#{calendarBean.persontreeModel}" 
    測試一下,果然,無論怎么鏈接,依然保持良好的狀態,呵呵。
    posted @ 2009-12-10 00:02 Aaronbamoo 閱讀(1304) | 評論 (4)編輯 收藏

    上次發博還是07年9月的事,那時我還在運營商,這時自己私下再學Java,偶爾上來寫點心得。沒想過了幾個星期,我轉身離開運營商,來到了設備商做研發,終于如愿能做些自己喜歡做的工作了,但是忙碌的工作之余,卻忘記了再來寫點什么。而兩年不到的時間,我又再次回到了另一個運營商,發現還是放不下在研發的日子,又開始想做點什么。于是乎,又開始想寫點什么。這好比一個輪回,其中的得失,只有自己明白。
    posted @ 2009-12-09 23:16 Aaronbamoo 閱讀(150) | 評論 (0)編輯 收藏

    /home/aaron/Desktop/Screenshot.png
    posted @ 2007-09-05 22:16 Aaronbamoo 閱讀(392) | 評論 (0)編輯 收藏

    1,ArrayList的Generics
    public class ArrayListGenericDemo 
      
    public static void main(String[] args) 
        ArrayList
    <String> data = new ArrayList<String>(); 
        data.add(
    "hello"); 
        data.add(
    "goodbye"); 
        
    // data.add(new Date()); This won't compile! 
        Iterator<String> it = data.iterator(); 
        
    while (it.hasNext()) 
          String s 
    = it.next(); 
          System.out.println(s); 
        }
     
      }
     
    }
     
    2,HashMap的Generics
    public class ArrayListGenericDemo 
      
    public static void main(String[] args) 
        ArrayList
    <String> data = new ArrayList<String>(); 
        data.add(
    "hello"); 
        data.add(
    "goodbye"); 
        
    // data.add(new Date()); This won't compile! 
        Iterator<String> it = data.iterator(); 
        
    while (it.hasNext()) 
          String s 
    = it.next(); 
          System.out.println(s); 
        }
     
      }
     
    }
     
    posted @ 2007-07-16 11:07 Aaronbamoo 閱讀(186) | 評論 (0)編輯 收藏

           盡管EJB2.0自出生就帶來了很多非議,但是<head first EJB>仍然值得拜讀,原本一直被外界的評論所影響,不敢碰關于EJB的東西,剛剛在CSDN上學習了前幾章,發現原來EJB雖然有些復雜,但是也不是高不可攀。今天正好把第三章看完,明天就有朋友幫我把書帶來了,繼續奮斗!
           盡管過多的不相關工作延緩了Java的學習進程,但是只要堅持信仰,不斷努力,一定會看到希望!
    posted @ 2007-05-23 18:08 Aaronbamoo 閱讀(411) | 評論 (4)編輯 收藏

    ??? 最近在寫Hibernate+struts的程序,發現為了完成一個查詢功能,廢的勁還真不少,總感覺很不爽。真不知道它好在哪里,繼續學習<深入淺出Hibernate>。

    posted @ 2007-03-25 22:40 Aaronbamoo 閱讀(236) | 評論 (0)編輯 收藏

         摘要: [IBM developerWorks 中國 ?] 本文講述了如何利用Java的反射的機制來簡化Structs應用程序的開發。 Struts中引入ActionForm類的意義與缺陷: 在Struts應用程序中,ActionForm是一個很重要的概念,它的主要功能就是為Action的操作提供與客戶表單...  閱讀全文
    posted @ 2007-03-21 10:05 Aaronbamoo 閱讀(209) | 評論 (1)編輯 收藏

    ??? 快速學習了一遍《head first servlet/jsp》,發現再次去回顧struts的核心技術,變得那么容易理解。昨天再一次調試開發struts實例,寫完后一次性運行成功,哈哈,盡管很簡單的程序,還是很爽!
    ??? 今天把validation框架又加入到struts,再次運行成功,不過化了不少時間調試,一個很低級的錯誤,action的配置中忘了加屬性validate="true",怪不得總是沒有驗證就直接轉發。希望朋友們別犯同樣的錯誤,呵呵!
    ??? 在西安已經呆了快半個月了,有點喜歡上這個城市,相比南方城市的柔美,這里多了幾分人文的大氣。很喜歡和這里的人們交談,帶著陜西口音的普通話總是很耐聽;很喜歡這里的飲食,不需要化太多的錢,就能吃上地道的西安小吃;很喜歡這里的街道,直來直往,永遠都不會迷路。不斷挖掘西安的文明,將是上課之余一件令人興奮的事。
    posted @ 2007-03-20 16:47 Aaronbamoo 閱讀(1200) | 評論 (8)編輯 收藏

    主站蜘蛛池模板: 在线观看国产区亚洲一区成人 | 国产亚洲精品国产福利在线观看| 69式互添免费视频| 亚洲精品不卡视频| 91精品国产免费久久久久久青草 | 国产AV无码专区亚洲AV手机麻豆| 免费看内射乌克兰女| 四虎永久免费地址在线网站| 亚洲av无码无线在线观看| 国产片免费在线观看| 男人和女人高潮免费网站| 国产亚洲一区区二区在线| 中文毛片无遮挡高清免费| 亚洲精品无码午夜福利中文字幕| 在线观看免费黄色网址| 亚洲第一精品在线视频| 99久久精品日本一区二区免费| 亚洲国产乱码最新视频 | 国产99视频免费精品是看6| 亚洲中文字幕无码爆乳app| 好大好硬好爽免费视频| 理论亚洲区美一区二区三区| 无码专区一va亚洲v专区在线| 一级做a爱片特黄在线观看免费看| 亚洲成色WWW久久网站| 1000部啪啪未满十八勿入免费| 亚洲色欲色欲www| 亚洲国产成人精品无码久久久久久综合 | 亚洲国产AV无码一区二区三区| 在线免费观看国产视频| 韩国免费a级作爱片无码| 亚洲日韩图片专区第1页| 久久久久国产精品免费免费搜索| 亚洲AV日韩AV一区二区三曲| 亚洲中文字幕久久精品无码喷水| 99re免费99re在线视频手机版| 亚洲最大无码中文字幕| 国产午夜亚洲精品理论片不卡 | 中文字幕一区二区免费| 亚洲国产精品成人精品小说| 免费一级黄色毛片|