程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> J2EE >> 簡述學習JSF小記

簡述學習JSF小記

編輯:J2EE

學習JSF有一段時間了,從剛開始對JSF的好奇到現在對JSF的漸漸熟悉,花費了不少時間,但所獲還是甚少。提到JSF,我們總喜歡把它跟jsp作比較,這很正常。我認為JSF是站在JSP這個巨人的肩膀上,才能有如此的成就。JSF看似像是一個類似於struts的框架,但又不僅是如此。雖然 Struts和JSF都屬於表現層框架,但兩者分屬不同性質的框架,後者是一種事件驅動型的組件模型,而Struts只是單純的MVC模式框架。從技術上說,JSF提供了一套類似於Html的統一標簽,但這種標簽不是簡單的靜態標簽,而是動態的。

學習JSF的起步,我們按照慣例先從一個demo開始。在使用eclipse開發第一個JSF的demo前,先要去下載JSF的幾個jar包:JSF-impl.jar,JSF- api.jar,commons-digester.jar,commons-collections.jar,commons- beanutils.jar,JStl.jar,standard.jar。你可以把他們先放到Web應用程序的/WEB-INF/lib目錄下,或者以後再添加進去。

在eclipse中新建一個JSF項目,“新建”—“web project”,它跟創建一個jsp項目完全相同。完成後,右鍵項目名,選擇“myeclipse”—“add JSF facelets capabilitIEs……”,這相當於添加了對JSF的支持平台。打開項目,我們可以看到熟悉的文件路徑,幾個jar包,webroot文件夾,index.JSp,web.XML文件等。不過這個多了一個face-config文件,這也是JSF項目與JSP項目的最大不同之處。接下來,我們要配置web.XML文件,還有faces-config文件。

如果你以前使用過struts,那麼你肯定熟悉struts裡面的struts-config文件,它與faces-config何其相似。faces-config的參數配置主要有以下幾個:

1.navigation- rule(導航規則)。它由<from-view-id>(起始頁面),<navigation-case>(導航案例)兩部分組成。在“導航案例”中,有<from-action>(導航動作),<from-outcome>(導航結果),<to-vIEw-id>(目的頁面)等。通過這個配置,我們告訴web應用程序在什麼時候跳轉,如何跳轉,以及從哪個頁面跳轉到哪個頁面。

2.managed-bean(托管bean)。托管bean主要有以下幾個部分:<managed-bean-name>(托管bean的實例名),<managed-bean-class>(托管bean類的全名),<managed-bean-scope>(托管 bean的作用域)。scope有none,request,session,applicaton等。application不常用,用得較多的就是 session和request了。request表示bean的存活時間為程序請求階段,而session的存活時間為程序交互開始,直到浏覽器關閉或者會話結束。在faces-config的“design”視圖中,我們可以很方便地進行配置,

下一步,我們開始在eclipse中編輯學習JSF頁面的內容,為了簡便,我們直接對index.JSp頁面進行修改。在頁頭我們需要添加一些JSP的page指令和常用的Html,head和body標簽(有的已經自動生成),如以下:
◆<%@ page contentType="text/Html;charset=utf-8" pageEncoding="utf-8" language="Java"%>
◆<Html><head><title>……
同時,還要添加聲明2個JSF標准的標簽庫描述文件:
◆<%@ taglib uri="http://Java.sun.com/JSF/core" prefix="f"%>(JSF標記標簽)
◆<%@ taglib uri="http://Java.sun.com/JSF/html" prefix="h"%>(JSF的Html用戶界面組件標簽)
此外,頁面中還需要加入vIEw和form標簽,因為所有的JSF組件標簽必須定義在vIEw這個標簽之內。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved