隨筆 - 3, 文章 - 0, 評(píng)論 - 12, 引用 - 0
          數(shù)據(jù)加載中……

          什么是IoVC

          什么是IoVC

              IoVC是Inversion of View Control的縮寫,意思是視圖反轉(zhuǎn)控制,是AOM的核心特性之一,IoVC實(shí)現(xiàn)了將對(duì)UI的控制力轉(zhuǎn)移到ManagedBean中,UI完全不關(guān)心誰(shuí)會(huì)來(lái)使用它本身,也不需要關(guān)心在上面所展現(xiàn)的數(shù)據(jù)內(nèi)容是什么,從而實(shí)現(xiàn)了UI與控制邏輯的完全分離,簡(jiǎn)言之,IoVC是一種更高層次的MVC。

              初一看,IoVC好像也沒(méi)什么特別的,甚至有點(diǎn)概念炒作的嫌疑,但是真正使用它、理解它之后,你會(huì)發(fā)現(xiàn),它所提供的編程模型為你的開(kāi)發(fā)帶來(lái)了實(shí)質(zhì)性的幫助。

          IoVC帶來(lái)了什么

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

          托管Bean的簡(jiǎn)化

              傳統(tǒng)方式中,編寫一個(gè)ManagedBean,需要編寫faces-config.xml文件,例如編寫兩個(gè)ManagedBean,UserBean與DepartmentBean,其中UserBean需要引用DepartMentBean,需要采用下面的方式來(lái)聲明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等關(guān)于ManagedBean定義的一整套完整的標(biāo)簽,上面的定義,在IoVC中將會(huì)轉(zhuǎn)變?yōu)槿缦路绞街苯勇暶髟诖a中,無(wú)需維護(hù)faces-config.xml文件:
          @ManagedBean
          public class DepartmentBean
          {
              
          }

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

          關(guān)于IoVC剩余的幾個(gè)特性的支持的描述,我將會(huì)陸續(xù)寫一些文章來(lái)進(jìn)行深入介紹。

          在把“IoVC是什么、IoVC能夠做什么”這些基本問(wèn)題解釋清楚后,我計(jì)劃探討一下“IoVC是怎么實(shí)現(xiàn)的?”,以及“為什么有了IoVC之后,組件的無(wú)狀態(tài)就可以變成可能?”等問(wèn)題。

          綁定(Binding)

            

          資源注入 (Injection)

            

          多語(yǔ)言支持

             

          邏輯事件

             

          “無(wú)狀態(tài)組件”的傳說(shuō)

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

          評(píng)論

          # re: 什么是IoVC  回復(fù)  更多評(píng)論   

          贊一個(gè)!
          期待后續(xù)文章
          2008-02-24 13:17 | wswz

          # re: 什么是IoVC[未登錄](méi)  回復(fù)  更多評(píng)論   

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

          # re: 什么是IoVC  回復(fù)  更多評(píng)論   

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

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


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 久治县| 明水县| 莆田市| 喀喇沁旗| 西乌| 苏尼特左旗| 金昌市| 化隆| 北宁市| 满洲里市| 宁波市| 芜湖县| 长岭县| 阿瓦提县| 云南省| 南平市| 武安市| 墨竹工卡县| 织金县| 奉贤区| 乌鲁木齐县| 兰考县| 西藏| 准格尔旗| 清新县| 县级市| 山阴县| 满洲里市| 宁国市| 益阳市| 拉萨市| 高邑县| 玉田县| 宿州市| 信丰县| 土默特右旗| 呼伦贝尔市| 乐亭县| 牟定县| 武平县| 长子县|