隨筆 - 3, 文章 - 0, 評論 - 12, 引用 - 0
          數據加載中……

          什么是IoVC

          什么是IoVC

              IoVC是Inversion of View Control的縮寫,意思是視圖反轉控制,是AOM的核心特性之一,IoVC實現了將對UI的控制力轉移到ManagedBean中,UI完全不關心誰會來使用它本身,也不需要關心在上面所展現的數據內容是什么,從而實現了UI與控制邏輯的完全分離,簡言之,IoVC是一種更高層次的MVC。

              初一看,IoVC好像也沒什么特別的,甚至有點概念炒作的嫌疑,但是真正使用它、理解它之后,你會發現,它所提供的編程模型為你的開發帶來了實質性的幫助。

          IoVC帶來了什么

              IoVC提供了“綁定”、“多語言支持”、“資源注入”、“邏輯事件”等特性,這些特性主要作用在ManagedBean上面,ManagedBean是位于UI與業務服務之間的協調者,基于這些特性,在ManagedBean中,一方面可以對UI實現完全的控制,另一方面,可以靈活自然的與業務服務進行交互。

          托管Bean的簡化

              傳統方式中,編寫一個ManagedBean,需要編寫faces-config.xml文件,例如編寫兩個ManagedBean,UserBean與DepartmentBean,其中UserBean需要引用DepartMentBean,需要采用下面的方式來聲明faces-config.xml文件:
            <managed-bean>
              
          <managed-bean-name>DepartmentBean</managed-bean-name>
              
          <managed-bean-scope>session</managed-bean-scope>
              
          <managed-bean-class>demo.DepartmentBean</managed-bean-class>
            
          </managed-bean>

            
          <managed-bean>
              
          <managed-bean-name>UserBean</managed-bean-name>
              
          <managed-bean-scope>session</managed-bean-scope>
              
          <managed-bean-class>demo.UserBean</managed-bean-class>
              
          <managed-property>
                
          <property-name>departmentBean</property-name>
                
          <property-class>demo.DepartmentBean</property-class>
                
          <value>#{DepartmentBean}</value>
              
          </managed-property>
            
          </managed-bean>

              IoVC提供了@ManagedBean、@ManagedProperty、@MapEntries、@ListEntries等關于ManagedBean定義的一整套完整的標簽,上面的定義,在IoVC中將會轉變為如下方式直接聲明在代碼中,無需維護faces-config.xml文件:
          @ManagedBean
          public class DepartmentBean
          {
              
          }

          @ManagedBean
          public class UserBean
          {
              @ManagedProperty(
          "#{DepartmentBean}")
              
          private DepartmentBean departmentBean;
              
          }

          關于IoVC剩余的幾個特性的支持的描述,我將會陸續寫一些文章來進行深入介紹。

          在把“IoVC是什么、IoVC能夠做什么”這些基本問題解釋清楚后,我計劃探討一下“IoVC是怎么實現的?”,以及“為什么有了IoVC之后,組件的無狀態就可以變成可能?”等問題。

          綁定(Binding)

            

          資源注入 (Injection)

            

          多語言支持

             

          邏輯事件

             

          “無狀態組件”的傳說

          posted on 2008-02-24 01:15 張旭 閱讀(1811) 評論(3)  編輯  收藏

          評論

          # re: 什么是IoVC  回復  更多評論   

          贊一個!
          期待后續文章
          2008-02-24 13:17 | wswz

          # re: 什么是IoVC[未登錄]  回復  更多評論   

          什么是AOM?
          2008-03-21 17:31 | AJ

          # re: 什么是IoVC  回復  更多評論   

          <javascript></javascript>
          2010-06-02 13:51 | f

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


          網站導航:
           
          主站蜘蛛池模板: 恩施市| 肇州县| 郁南县| 墨脱县| 汉阴县| 灵寿县| 和静县| 深水埗区| 灵石县| 昌图县| 清水县| 忻城县| 通海县| 乐平市| 彰武县| 三穗县| 饶河县| 咸阳市| 文成县| 岳池县| 古浪县| 通化市| 江山市| 江津市| 易门县| 威宁| 高平市| 渑池县| 柳州市| 巧家县| 东乌| 靖远县| 双江| 吴忠市| 周至县| 钦州市| 普宁市| 浮梁县| 通化县| 芦山县| 凤阳县|