posts - 262,  comments - 221,  trackbacks - 0
          一、<f:view>、<f:loadbundle>和<html>標記的位置

          使用JSF國際化時,如果HTML頁面的<title></title>部分需要用到綁定資源文件的信息,則<f:view>和<f:loadbundule>標簽必須放在<html>標簽之外,諸如以下所示:

          沒有使用資源綁定之前,頁面代碼如下:
          <html>
          <head>
          <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          <title>第一個JSF程序</title>
          </head>
          <body>
            
          <f:view>
              
          <h:form>
                
          <h3>請輸入你的名稱</h3>
                
          <h:outputText value="#{user.errMessage}" /><p>
                 名稱:
          <h:inputText value="#{user.name}" /><p>
                 密碼:
          <h:inputSecret value="#{user.password}" /><p>
                
          <h:commandButton value="送出" action="#{user.verify}" />
              
          </h:form>
            
          </f:view>  
          </body>
          </html>

          使用了資源文件之后,代碼的<f:view>,<f:loadbundle>標簽提前到<html>標簽前面:

          <f:view locale="zh_CN">
          <f:loadBundle basename="messages" var="msgs"/>

          <html>
          <head>
          <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          <title><h:outputText value="#{msgs.titleText}"/></title>
          </head>
          <body>  
              
          <h:form>
                
          <h3><h:outputText value="#{msgs.hintText}"/></h3>
                
          <h:outputText value="#{user.errMessage}" /><p>      
                
          <h:outputText value="#{msgs.nameText}" />
                
          <h:inputText value="#{user.name}" /><p>      
                
          <h:outputText value="#{msgs.passText}" />
                
          <h:inputSecret value="#{user.password}" /><p>      
                
          <h:commandButton value="#{msgs.commandText}" action="#{user.verify}" />
              
          </h:form>  
          </body>
          </html>

          </f:view>

          否則頁面在運行時會提示找不到標簽,原因就是因為在加載資源文件之前<title></title>就已經使用了綁定,自然無法找到綁定的內容。

          二、<f:view>的locale屬性和faces-config.xml中<locale-config>配置的優先級別:

          1.<f:view>沒有設置locale,faces-config.xml沒有設置<local-config>時采用瀏覽器的默認配置

          2.<f:view>沒有設置locale,但faces-config.xml中設置了<local-config>時,如果支持本地語言則采用<local-config>的<supported-locale>配置,否則采用<default-locale>

          3.<f:view>設置了locale時,faces-config.xml沒有設置<local-config>時采用<f:view>的配置

          4.<f:view>設置了locale時,且faces-config.xml中設置了<local-config>時,采用<f:view>

          posted @ 2008-03-04 22:32 Paul Lin 閱讀(1344) | 評論 (0)編輯 收藏
               摘要: ·在抽象接口中包含了一個對行為接口的引用,這樣的話行為的操作將完全委托給行為接口完成,抽象類無需關心。

          ·在抽象類的繼承子類中,調用了行為類的子類來實現不同的行為。此時抽象類的子類中只知道屬性,但不知道具體的行為實現,實現了概念與行為的分離

          ·在行為類的繼承子類中,只知道執行相應的動作,但不知道具體的屬性,實現了行為和概念的分離  閱讀全文
          posted @ 2008-02-26 21:48 Paul Lin 閱讀(2087) | 評論 (0)編輯 收藏
               摘要: 使用Ant腳本來管理HSQLDB  閱讀全文
          posted @ 2008-02-24 22:40 Paul Lin 閱讀(2346) | 評論 (3)編輯 收藏
               摘要: Decorator模式的實際應用--動態黑名單過濾  閱讀全文
          posted @ 2008-02-19 18:31 Paul Lin 閱讀(1778) | 評論 (0)編輯 收藏
               摘要: Decrator模式的適用場合:
          1).在運行時刻由用戶動態決定加入的方式和時機,無法在編譯期間決定
          2).需要改變的行為太多,用繼承會導致復雜性的增加  閱讀全文
          posted @ 2008-02-19 16:33 Paul Lin 閱讀(2097) | 評論 (0)編輯 收藏
               摘要: 來自Dom4j中的cookbook  閱讀全文
          posted @ 2008-01-30 17:13 Paul Lin 閱讀(2249) | 評論 (0)編輯 收藏

          由于敏捷開發的流行,TDD的概念近年來在國內被炒得很火,似乎TDD是一個深不可測的東西。

          今天在看TDD的文章時,突然有了一個感覺:其實TDD的思想本來就很樸實,反而是我們開發人員一開始就背離了正確的路線和方法。

          眾所周知,TDD鼓勵人們在編寫實際的實現代碼之前,就先寫好測試代碼。這一點對大多數程序員來說難以接受,總覺得實現代碼都沒有寫,怎么寫測試代碼啊。其實我覺得這主要是觀念上的誤區和行為的慣性所致。

          我們知道,開發商蓋樓盤時都有一個建筑標準,而業主收樓時也有一個收樓標準。這些標準都是在實際的工程開工之前或業主正式入住之前就已經制定好的。正規的開發商會在建筑的過程中嚴格按照建筑標準來衡量自己的樓盤建設質量。看到有不符合要求的就馬上改正。而不是事先不考慮任何的建筑或驗收標準,等到整個樓盤蓋好后再來。

          這個道理和TDD是一樣的,在任何工作開始之前,我們都應該先明確制定工作交付的標準。這一點在需求分析文檔中已經明確體現出來了。到了實際編碼階段卻反而變成相反了。沒有了事實的驗收標準,就等于沒有了目標,連自己要做成什么模樣都不知道,才會出現在聯調階段出現眾多的bug而導致返工的情況,另一方面由于沒有了驗收標準,開發人員經常會出現不知道接口如何設計的困惑。

          TDD就是要求我們在編碼階段先制定驗收標準,再根據標準來開發。TDD的過程就是根據驗收標準不斷調整優化的過程,確保你始終沿著預定的目標前進,不會到最后變成一“豆腐渣工程”。

          同時為了符合測試程序的要求,您的單元必須設計得可以測試,這迫使您設計程序時,考慮到單元的低耦合。


          很多時候技術的思想都很樸實,就像OOP那樣,其實OOP本來就來自于日常生活,雖然說做了高層的抽象,但始終可以通過和現實的類比來看到其本質。

          posted @ 2008-01-29 11:36 Paul Lin 閱讀(1389) | 評論 (1)編輯 收藏
          網上見到的《新聞聯播口訣表》,很真實很搞笑很諷刺。河蟹社會的真實寫照

          ----------------------------------------------------------------------------
               會議沒有不隆重的,閉幕沒有不勝利的;
            講話沒有不重要的,鼓掌沒有不熱烈的;
            領導沒有不重視的,看望沒有不親切的;
            接見沒有不親自的,進展沒有不順利的;
            完成沒有不圓滿的,成就沒有不巨大的;
            工作沒有不扎實的,效率沒有不顯著的;
            決議沒有不通過的,人心沒有不振奮的;
            班子沒有不團結的,群眾沒有不滿意的;
            領導沒有不微笑的,問題沒有不解決的;
            事情沒有不矚目的,會談沒有不坦誠的;
            反對沒有不強烈的,交涉沒有不嚴正的; 
            完成沒有不超額的,竣工沒有不提前的;
            中日沒有不友好的,中美沒有不合作的;
            節日沒有不祥和的,婦女沒有不解放的;
            決策沒有不英明的,路線沒有不正確的;
            掃黃沒有不徹底的,行動沒有不果斷的;
            形勢沒有不大好的,觀點沒有不贊同的;
            氣氛沒有不友好的,信心沒有不增強的;
            糧食沒有不豐收的,抗洪沒有不英勇的;
            貪官總是極少數的, 群眾沒有不受蒙蔽的
            干涉沒有不粗暴的,遺憾沒有不深表的;
            措施沒有不得力的,成績總是主要的;
            法律沒有不公正的,上訴沒有不駁回的;
            貫徹沒有不徹底的,理論沒有不高屋建瓴的;
            政策沒有不鼓舞人心的,大賽沒有一次不沖擊的;
            搶救沒有不及時的,損失沒有不慘重的;
            設計沒有不合理的,技術沒有不先進的;
            論證沒有不專家的,檢測沒有不嚴格的;
            運行沒有不可靠的,系統沒有不安全的;
            特色沒有不中國的,失誤沒有不難免的;
            農業沒有不遭災的,災年沒有不豐收的;
            江河沒有不治的,大水沒有不發的;
            團結沒有不緊密的,擁護沒有不一致的;
            旗幟沒有不高舉的,思想沒有不堅持的;
            道路沒有不曲折的, 前途沒有不光明的
          posted @ 2008-01-25 12:54 Paul Lin 閱讀(1050) | 評論 (0)編輯 收藏
               摘要: Composite模式的特點:
          ·Composite模式一般都有一個抽象類或接口來表示最基本的構件。
          ·Composite模式一般都由兩類對象構成:表示單個元素的對象(Primitive)和表示多個元素組合的對象(Composite)
          ·Composite模式下Primitive和Composite對象都繼承或實現上層接口或父類
          ·Composite模式下每個構件都含有三個基礎方法:add(構件)、remove(構件)、iterator()
          ·Composite對象含有一個用來保存其下所有基礎元素的的集合,例如:Vector,ArrayList,HashMap
          ·Composite對象的方法被調用時一般都會引起其下所有基礎元素相同方法的調用,即遞歸調用。  閱讀全文
          posted @ 2008-01-21 09:55 Paul Lin 閱讀(3140) | 評論 (0)編輯 收藏
               摘要: 《輕量級J2EE企業應用實戰》一書的第2章有一個使用SerlvetResponse輸出圖像的例子,代碼如下: <%   BufferedImage image = new BufferedImage(400, 400, BufferedImage.TYPE_INT_RGB);   ...  閱讀全文
          posted @ 2008-01-19 22:24 Paul Lin 閱讀(43362) | 評論 (10)編輯 收藏
          僅列出標題
          共26頁: First 上一頁 18 19 20 21 22 23 24 25 26 下一頁 
          <2025年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          常用鏈接

          留言簿(21)

          隨筆分類

          隨筆檔案

          BlogJava熱點博客

          好友博客

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 墨玉县| 西城区| 彩票| 微博| 抚顺县| 迭部县| 永宁县| 民县| 玛多县| 调兵山市| 定边县| 呼伦贝尔市| 南涧| 柳林县| 德清县| 罗山县| 鲜城| 收藏| 体育| 若尔盖县| 阿克| 盐池县| 余庆县| 东乡县| 新郑市| 青浦区| 阿勒泰市| 酒泉市| 韶山市| 肥东县| 道真| 上饶县| 阿坝| 东台市| 英吉沙县| 肥西县| 松溪县| 芦溪县| 丹江口市| 屏东县| 宣城市|