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 學習之二 [原創](Managed Bean的創建與初始化)

          Managed Bean的創建與初始化

          1Managed Bean 被定義在faces-config.xml里,當這個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>

           

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

           

          2.聲明Lists and Maps作為managed beans

           

          這里managed-bean-class必須是個實現類,而不能是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,但是引用是不能循環的,即user不能在反過來引用referer,由此可見用value-binding expressions是相當的靈活阿,哈哈

           To be continued....

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

          導航

          統計

          常用鏈接

          留言簿(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
          主站蜘蛛池模板: 彭山县| 巩义市| 盐山县| 将乐县| 屏山县| 开原市| 安徽省| 河曲县| 屏东县| 阿荣旗| 阳谷县| 托里县| 五河县| 富锦市| 桐柏县| 浏阳市| 合水县| 周至县| 饶阳县| 葵青区| 乳源| 玉溪市| 余庆县| 什邡市| 凌云县| 平邑县| 巨鹿县| 车险| 碌曲县| 福州市| 沧州市| 马山县| 青州市| 历史| 缙云县| 图木舒克市| 江安县| 靖边县| 长春市| 舒城县| 徐闻县|