<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瀏覽器客戶端等。現在已經有很多的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
    主站蜘蛛池模板: 久久99精品免费一区二区| 亚洲sss综合天堂久久久| 久久亚洲国产成人影院网站| 国产一级淫片免费播放| 日韩免费视频播播| 四虎影视永久免费观看| 免费欧洲毛片A级视频无风险| 国产自产拍精品视频免费看| 国产a不卡片精品免费观看| 免费国产精品视频| 亚洲熟女乱综合一区二区| 国产亚洲?V无码?V男人的天堂| 国产成人麻豆亚洲综合无码精品| 亚洲午夜久久久久久久久电影网| 亚洲αv在线精品糸列| 中文字幕亚洲色图| 99999久久久久久亚洲| 久久久久亚洲AV无码去区首| 一边摸一边桶一边脱免费视频| 久久嫩草影院免费看夜色| 13小箩利洗澡无码视频网站免费| 99久久99久久精品免费观看| 最近高清中文字幕无吗免费看| 成年女人免费视频播放体验区| 国产成人精品高清免费| 亚洲日本在线观看视频| 亚洲av网址在线观看| 亚洲人xxx日本人18| 美女免费视频一区二区| 中文字幕免费观看视频| 91免费福利精品国产| 成年人性生活免费视频| 亚洲第一区在线观看| 久久亚洲免费视频| 亚洲色在线无码国产精品不卡| 特黄特色大片免费| 亚洲视频免费在线观看| 在线观看视频免费国语| 国产亚洲AV夜间福利香蕉149| 亚洲国产韩国一区二区| 国产精品亚洲精品日韩电影|