<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    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 學習一[原創]

           
          首先介紹一下JSF(JavaServer Faces)JSF是JavaEE標準的一部分, 是基于組建的架構(component architecture), 而且是事件驅動的,其目的在于把WebApp的開發可以向DesktopApp一樣. 可以使各個常用的UI Widgets組件化, 提高重用性,簡化創建Web UI的工作量,并且它也提供了豐富的功能集包含事件處理機制(Event Handling Mechanism)、頁面導航(Page Navigation)、驗證客戶端數據(Input Validation)和數據轉換(Conversion)等等。JSF框架最主要的特色之一就是它并不僅針對于一種類型的客戶端,意味著除了用于桌面的Html瀏覽器客戶端外,它甚至還可能支持用于移動電話的Wml瀏覽器客戶端等?,F在已經有很多的Vender在支持JSF:Apache Software Foundation, BEA Systems,Borland Software, IBM, Oracle, Macromedia,等等。
     

    JSF她的實現常用的有(當然還有其他的):
       1. Sun RI (Reference Implementation)
            和一般的WebApp一樣放在WEB-INF/lib下
           所需的lib: jsf-api.jar   (在JSF specification定義的API)
                            jsf-impl.jar  (Sun JSF的參考實現)
                            jstl.jar         (JSTL API)
                            standard.jar (JSTL的實現Implementation)
       2. Apache MyFaces
             所需的lib: myfaces-api-1.2.2.jar
                            myfaces-impl-1.2.2.jar
                            jstl.jar         (JSTL API)
                            standard.jar (JSTL的實現Implementation)
                            commons-beanutils-1.7.0.jar
                            commons-codec-1.3.jar
                            commons-collections-3.2.jar
                            commons-digester-1.8.jar
                            commons-el-1.0.jar
                            commons-discovery-0.4.jar
                            commons-logging-1.1.1.jar

    配置環境:     
    1.配置web.xml
     1 <web-app>
     2 
     3 <servlet>
     4 <servlet-name>Faces Servlet</servlet-name>
     5 <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
     6 </servlet>
     7 <servlet-mapping>
     8 <servlet-name>Faces Servlet</servlet-name>
     9 <url-pattern>/faces/*</url-pattern>
    10 </servlet-mapping>
    11 
    12 </web-app>
        和傳統的Struts類似,JSF也有配置文件faces-config.xml,并且她支持多個Config文件,可以在web.xml這樣設置:
     1 <web-app>
     2 
     3 <context-param>
     4 <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
     5 <param-value>server</param-value>
     6 </context-param>
     7 <context-param>
     8 <param-name>javax.faces.CONFIG_FILES</param-name>
     9 <param-value>/WEB-INF/config1.xml,/WEB-INF/config2.xml</
    10 param-value>
    11 </context-param>
    12 
    13 <web-app>
    2.配置faces-config.xml,在這里聲明managed beans, 并且它支持 EL expression,其實所有的JSF Component都支持EL expression
    所有的元素都包含在<faces-config></faces-config>之間,以下是常用的managed-bean元素
    1 <managed-bean>
    2 <description>Used for testing.
    3 </description>
    4 <managed-bean-name>testBean</managed-bean-name>
    5 <managed-bean-class>net.blogjava.gembin.TestBean
    6 </managed-bean-class>
    7 <managed-bean-scope>session</managed-bean-scope>
    8 </managed-bean>
    以上managed-bean的這3個元素是必須的,還有<description><display-name>, and <icon>.是可選的,主要用于可視化工具里顯示之用.
    定義完managed beans 之后就可以在JSP頁面上引用它了。test.jsp
     1 <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
     2 <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
     3 <html>
     4 <head>
     5 <title>Hello</title>
     6 </head>
     7 <body>
     8 <f:view>
     9    <h:outputText value="Hello #{testBean.sayHello}!"/>
    10 </f:view>
    11 </body>
    12 </html>
    TestBean.java
     1 package net.blogjava.gembin;
     2 
     3 public class TestBean{
     4  
     5    public TestBean(){}
     6     
     7    public String sayHello(){
     8        return "jsf, Hello world!";
     9    }  
    10 }

    這里注意test.jsp中只能有1個<f:view> 元素,并且它不代表任何UI,是JSF UI的Root
    managed-bean-scope的值可以是:session,application,request,none。
    每個托管的對象(
    managed-bean)不能引用生命周期比它還短的對象,所以
    1. 存放在request scope的Object可以引用none, application, session, request里的對象;
    2. 存放在session scope的Object可以引用none, application, session里的對象;
    3. 存放在application scope的Object可以引用none, application里的對象;
    4. 存放在none scope的Object可以引用none里的對象;
     由此可見none scope 非常有用。
    上面的例子運行之后將會在瀏覽器上顯示:
    Hello jsf, Hello world!!

    To be continued(待續...)

    posted on 2008-02-29 18:10 gembin 閱讀(591) 評論(0)  編輯  收藏


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


    網站導航:
     

    導航

    統計

    常用鏈接

    留言簿(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
    主站蜘蛛池模板: 亚洲av日韩av天堂影片精品| 毛片免费视频播放| 久草免费福利在线| eeuss草民免费| 久久成人18免费网站| 精品国产呦系列在线观看免费| fc2免费人成在线视频| 国产高清视频免费在线观看 | 日本亚洲国产一区二区三区| 亚洲区不卡顿区在线观看| 亚洲人成人网站在线观看| 久久久无码精品亚洲日韩软件| 国产av无码专区亚洲av果冻传媒 | 午夜影院免费观看| 永久免费视频网站在线观看| 99国产精品永久免费视频| 91免费资源网站入口| 免费黄色一级毛片| 亚洲国产成人久久笫一页| 久久亚洲欧洲国产综合| 亚洲AV无码不卡在线播放| 亚洲精品美女久久久久9999| 亚洲人成网站色在线观看| 精品亚洲国产成人av| 久久久WWW成人免费精品| 污视频在线免费观看| 国产成在线观看免费视频| 日本免费人成视频播放| 亚洲日本中文字幕一区二区三区| 亚洲国产精品无码久久一线 | 亚洲国产成人爱av在线播放| 亚洲乱码中文字幕综合| 亚洲精品免费视频| 伊人久久五月丁香综合中文亚洲| 国产一区二区三区亚洲综合| 成人久久免费网站| 久久精品无码一区二区三区免费| 亚洲不卡AV影片在线播放| 久久精品国产亚洲AV麻豆不卡| 丁香婷婷亚洲六月综合色| 深夜免费在线视频|