gembin

          OSGi, Eclipse Equinox, ECF, Virgo, Gemini, Apache Felix, Karaf, Aires, Camel, Eclipse RCP

          HBase, Hadoop, ZooKeeper, Cassandra

          Flex4, AS3, Swiz framework, GraniteDS, BlazeDS etc.

          There is nothing that software can't fix. Unfortunately, there is also nothing that software can't completely fuck up. That gap is called talent.

          About Me

           

          JSF In Action 學(xué)習(xí)之二 [原創(chuàng)](Managed Bean的創(chuàng)建與初始化)

          Managed Bean的創(chuàng)建與初始化

          1Managed Bean 被定義在faces-config.xml里,當(dāng)這個Bean第一次被引用時就會被初始化,

          它的生存周期由<managed-bean-scope>XXX</managed-bean-scope>來決定,

          <managed-bean>

          <managed-bean-name>user</managed-bean-name>

          <managed-bean-class>org.examples.TestBean</managed-bean-class>

          <managed-bean-scope>session</managed-bean-scope>

          <managed-property>

          <property-name>id</property-name>

          <value>111</value>

          </managed-property>

          <managed-property>

          <property-name>name</property-name>

          <value>gembin</value>

          </managed-property>

          </managed-bean>

           

          這里其實用了反轉(zhuǎn)控制(Inversion of Control, IoC) type 2, 即通過Setter注入,具體可參考Fowler, Dependency Injection這本書。假如你需要當(dāng)Application Startup的時候就要初始化一些Bean(例如建立數(shù)據(jù)庫連接,因為它的初始化需要1段時間),這就需要加ServletContextListener

           

          2.聲明Lists and Maps作為managed beans

           

          這里managed-bean-class必須是個實現(xiàn)類,而不能是List 或者Map,因為他們是接口,不能被初始化.

          并且用<list-entries><map-entry>代替<managed-property>

           

          <managed-bean>

          <description>List of favorite sites</description>

          <managed-bean-name>favoriteSites</managed-bean-name>

          <managed-bean-class>java.util.ArrayList</managed-bean-class>

          <managed-bean-scope>application</managed-bean-scope>

          <list-entries>

          <value>http://www.jsfcentral.com</value>

          <value>http://www.theserverside.com</value>

          <value>http://www.ibm.com/developerworks/</value>

          <value>http://otn.oracle.com</value>

          <value>http://www.java.net</value>

          <value>http://www.manning.com</value>

          </list-entries>

          </managed-bean>

           

          <managed-bean>

          <description>List of favorite sites, keyed by name.</description>

          <managed-bean-name>favoriteSitesMap</managed-bean-name>

          <managed-bean-class>java.util.HashMap</managed-bean-class>

          <managed-bean-scope>application</managed-bean-scope>

          <map-entries>

          <map-entry>

          <key>JSF Central</key>

          <value>http://www.jsfcentral.com</value>

          </map-entry>

          <map-entry>

          <key>TheServerSide.com</key>

          <value>http://www.theserverside.com</value>

          </map-entry>

          <map-entry>

          <key>IBM DeveloperWorks</key>

          <value>http://www.ibm.com/developerworks/</value>

          </map-entry>

          <map-entry>

          <key>Oracle Technology Network</key>

          <value>http://otn.oracle.com</value>

          </map-entry>

          <map-entry>

          <key>java.net</key>

          <value>http://www.java.net</value>

          </map-entry>

          <map-entry>

          <key>Manning Publications</key>

          <value>http://www.manning.com</value>

          </map-entry>

          </map-entries>

          </managed-bean>

           

           

          3. value-binding expressions引用managed beans

          假如有如下Beans

          <managed-bean>

          <description>test</description>

          <managed-bean-name>user</managed-bean-name>

          <managed-bean-class>org.examples.UserBean</managed-bean-class>

          <managed-bean-scope>session</managed-bean-scope>

          </managed-bean>

           

          <managed-bean>

          <managed-bean-name>referer </managed-bean-name>

          <managed-bean-class>org.examples.Referer</managed-bean-class>

          <managed-bean-scope>request</managed-bean-scope>

          <managed-property>

          <property-name>user</property-name>

          <value>#{user}</value>

          </managed-property>

          </managed-bean>

           

          這里referervalue-binding expressions引用了user,但是引用是不能循環(huán)的,即user不能在反過來引用referer,由此可見用value-binding expressions是相當(dāng)?shù)撵`活阿,哈哈

           To be continued....

          posted on 2008-03-05 12:19 gembin 閱讀(2216) 評論(0)  編輯  收藏 所屬分類: JSF

          導(dǎo)航

          統(tǒng)計

          常用鏈接

          留言簿(6)

          隨筆分類(440)

          隨筆檔案(378)

          文章檔案(6)

          新聞檔案(1)

          相冊

          收藏夾(9)

          Adobe

          Android

          AS3

          Blog-Links

          Build

          Design Pattern

          Eclipse

          Favorite Links

          Flickr

          Game Dev

          HBase

          Identity Management

          IT resources

          JEE

          Language

          OpenID

          OSGi

          SOA

          Version Control

          最新隨筆

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          free counters
          主站蜘蛛池模板: 北安市| 泰宁县| 高阳县| 拜城县| 准格尔旗| 当阳市| 高尔夫| 鲁山县| 津市市| 湾仔区| 潞城市| 科技| 嘉荫县| 海伦市| 南和县| 商南县| 曲麻莱县| 伽师县| 通江县| 南乐县| 平度市| 康平县| 姚安县| 南安市| 昌黎县| 昭平县| 双鸭山市| 防城港市| 平山县| 华安县| 双柏县| 财经| 景德镇市| 和政县| 磴口县| 铜陵市| 晋江市| 凤台县| 厦门市| 庆元县| 扎赉特旗|