posts - 2, comments - 2, trackbacks - 0, articles - 23
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          轉帖:JSF入門之hello world

          Posted on 2012-03-15 11:58 齊納爾多 閱讀(97) 評論(0)  編輯  收藏 所屬分類: JSF
          引用:http://liusuper.iteye.com/blog/214089
           JSF以MVC模式為基礎,與Struts不同,JSF的目標是希望以一個與Swing相類似的方式來開發網頁,因此,從JSF的結構圖當中,他的核心概念不是頁面,而是控件樹,也就是說,當用戶提交一個請求時,JSF會先將頁面上的組件先轉換為與Swing當中類似的,由容器和控件組成的控件樹,然后數據和事件被設置到對應的控件上,然后以一種與Swing類似的方式,來處理后續的請求。控件樹是整個JSF的核心,所有其他的一切一切都是圍繞著這棵控件樹展開的

                JSF的處理核心是控件樹,他會先將頁面上所聲明的控件轉換為一棵控件樹,后續的操作將在這顆控件樹上進行。為了提高性能,系統會為之前生成的控件樹提供緩存。Restore View的工作就是在緩存當中查找是否存在之前已經生成好的控件樹,如果沒有,則根據頁面的內容,重新生成。

             導入包:

           

          * jsf-impl.jar   
             
          * jsf-api.jar   
            
          * commons-digester.jar   
             
          * commons-collections.jar   
             
          * commons-beanutils.jar   
             
          * jstl.jar   
             
          * standard.jar  

          web.xml配置

          <?xml version="1.0" encoding="ISO-8859-1"?>  
          <web-app xmlns="http://java.sun.com/xml/ns/j2ee"  
             xmlns:xsi
          ="http://www.w3.org/2001/XMLSchema-instance"  
             xsi:schemaLocation
          ="http://java.sun.com/xml/ns/j2ee   
             http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
             
             version
          ="2.4">  
            
             
          <description>  
                 JSF Demo   
             
          </description>  
             
          <display-name>JSF Demo</display-name>  
             
          <servlet>  
                
          <servlet-name>Faces Servlet</servlet-name>  
                 
          <servlet-class>  
                      javax.faces.webapp.FacesServlet   
                 
          </servlet-class>  
                 
          <load-on-startup>1</load-on-startup>  
             
          </servlet>  
             
          <servlet-mapping>  
                 
          <servlet-name>Faces Servlet</servlet-name>  
                  
          <url-pattern>*.faces</url-pattern>  
            
          </servlet-mapping>  
           
             
          <welcome-file-list>  
                 
          <welcome-file>index.html</welcome-file>  
            
          </welcome-file-list>  
           
          </web-app>  

           

          定義一個javabean

          package onlyfun.caterpillar;

           public class UserBean {
              private String name;

              public void setName(String name) {
                  this.name = name;
              }

              public String getName() {
                  return name;
              }
           }


           定義一個/WEB-INF/faces-config.xml像struts中的struts-config.xml文件一樣,實現跳轉:
          <?xml version="1.0"?>
           
          <!DOCTYPE faces-config PUBLIC
           "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.0//EN"
           "http://java.sun.com/dtd/web-facesconfig_1_0.dtd"
          >

           
          <faces-config>
              
          <navigation-rule>
                  
          <from-view-id>/pages/index.jsp</from-view-id>
                  
          <navigation-case>
                      
          <from-outcome>login</from-outcome>
                      
          <to-view-id>/pages/welcome.jsp</to-view-id>
                  
          </navigation-case>
              
          </navigation-rule>

              
          <managed-bean>
                  
          <managed-bean-name>user</managed-bean-name>
                   
          <managed-bean-class>
                       onlyfun.caterpillar.UserBean
                   
          </managed-bean-class>
                  
          <managed-bean-scope>session</managed-bean-scope>
              
          </managed-bean>
           
          </faces-config>

           index.jsp

          <%@taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
           
          <%@taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
           
          <%@page contentType="text/html;charset=Big5"%>
           
          <html>
           
          <head>
           
          <title>第一個JSF程序</title>
           
          </head>
           
          <body>
              
          <f:view>
                  
          <h:form>
                      
          <h3>請輸入您的名稱</h3>
                      名稱: 
          <h:inputText value="#{user.name}"/><p>
                      
          <h:commandButton value="送出" action="login"/>
                  
          </h:form>
              
          </f:view>
           
          </body>
           
          </html>


          welcome.jsp

          <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
           
          <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
           
          <%@page contentType="text/html;charset=Big5"%>
           
          <html>
           
          <head>
           
          <title>第一個JSF程序</title>
           
          </head>
           
          <body>
              
          <f:view>
                  
          <h:outputText value="#{user.name}"/> 您好!
                  
          <h3>歡迎使用 JavaServer Faces!</h3>
              
          </f:view>
           
          </body>
           
          </html>


          地址欄訪問地址:http://localhost:8080/jsfDemo/pages/index.faces

          主站蜘蛛池模板: 类乌齐县| 偏关县| 侯马市| 泉州市| 柏乡县| 拉孜县| 垦利县| 水城县| 富阳市| 威远县| 道孚县| 白沙| 通河县| 桂东县| 宜州市| 南雄市| 精河县| 陇川县| 天等县| 泰和县| 介休市| 贺兰县| 柘城县| 漯河市| 永修县| 黔东| 临武县| 安新县| 英山县| 鄂尔多斯市| 托克托县| 平顶山市| 苗栗市| 石狮市| 綦江县| 革吉县| 彰化市| 独山县| 搜索| 石嘴山市| 安新县|