成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

JSF和JSP是新的搭檔

開發 后端
本文介紹JSF和JSP是一對新的搭檔。JSP是用于后臺的邏輯處理的技術,而JSF恰恰相反,是使開發人員能夠快速的開發基于 Java 的 Web 應用程序的技術,是一種表現層技術。

Java在最近幾年逐漸升溫,隨著Java SE 5和Java SE 6的推出,Java的未來更顯得無比輝煌。但以Java為基礎的JSP在Java SE 5推出之前卻一直抬不起頭來,這最重要的原因就是JSP雖然功能十分強大,但最大的優點也是它的最大缺點,功能強大就意味著復雜,尤其是設計前端界面的可視化工具不多,也不夠強大。因此,設計JSP頁面就變得十分復雜和繁瑣...

Java在最近幾年逐漸升溫,隨著Java SE 5和Java SE 6的推出,Java的未來更顯得無比輝煌。但以Java為基礎的JSP在Java SE 5推出之前卻一直抬不起頭來,這最重要的原因就是JSP雖然功能十分強大,但最大的優點也是它的最大缺點,功能強大就意味著復雜,尤其是設計前端界面的可視化工具不多,也不夠強大。因此,設計JSP頁面就變得十分復雜和繁瑣。不過,在Java SE 5推出的同時,Sun為了簡化JSP的開發難度,推出了新的JavaServer Faces(簡稱JSF)規范。從而使JSP走上了康莊大道。

作為一種高度組件化的技術,開發人員可以在一些開發工具的支持下,實現拖拉式編輯操作,用戶只需要簡單的將 JSF 組件拖到頁面上,就可以很容易的進行 Web 開發了。這是其作為一種組件化的技術所具有的最大好處,我們能用的組件不光是一些比較簡單的輸入框之類,還有更多復雜的組件可以使用的,比如 DataTable 這樣的表格組件, Tree 這樣的樹形組件等等。

作為一種標準的技術,JSF還得到了相當多工具提供商的支持。同時我們也會有很多很好的免費開發工具可以使用,前不久 Sun Java Studio Creator 2 和 Oracle JDeveloper 10g 作為免費的支持 JSF 的開發工具發布,給 JSF 帶來了不小的生氣。另外我們也有一些很優秀的商業開發工具可共選擇,BEA Workshop (原 M7 NitroX),Exadel,MyEclipse 這樣的基于 Eclipse 的插件開發工具,為現在廣大的 Eclipse 用戶帶來了不小的便利,IBM 的 Rational Application Developer 和 Borland 的 JBuilder 也是很不錯的支持 JSF 可視化開發的商業開發工具。

JSF和傳統的Web技術有著本質上的差別,在傳統的Web技術需要用戶自己對瀏覽器請求進行捕捉,保存客戶端狀態,并且手工控制著頁面的轉向,等等。而JSF的出現,無疑給我們帶來了巨大的便利,JSF 提供了事件驅動的頁面導航模型,該模型使應用程序開發人員能夠設計應用程序的頁面流。與 Struts 的方式向類似的是,所有的頁面流信息都定義在 JSF 配置 XML 文件 (faces-config.xml) 中,而非硬編碼在應用程序中。這很大程度簡化了開發人員開發難度,簡化了應用程序的開發。

同時JSF也是一種遵循模型-視圖-控制器 (MVC) 模式的框架。實現了視圖代碼(View)與應用邏輯(Model)的完全分離,使得使用 JSF 技術的應用程序能夠很好的實現頁面與代碼的分離。所有對 JSF 頁面的請求都會通過一個前端控制器 (FacesServlet) 處理,系統自動處理用戶的請求,并將結果返回給用戶。這和傳統的 MVC 框架并沒有太大的區別。

在JSF中不僅使用了 POJO 技術,而且還使用了類似 Spring 的控制反轉(IoC) (或稱為依賴注入-DI) 技術,在 JSF 的 Backing Bean 中,我們可以把視圖所需要的數據和操作放進一個 Backing Bean 中。同時得益于 JSF 使用的 DI 技術,我們可以在配置文件中初始化 Managed Bean,同時我們也可以通過這樣的技術很方便的和使用類似技術的 Spring 進行整合。

如何在JSP中使用JSF

只有通過JSF和JSP相結合,才能充分發揮它的功效。JSF是通過標簽庫和JSP 進行集成的。標簽庫就相當于ASP.NET的服務端組件。JSF提供了非常豐富的標簽庫,通過這些標簽庫,可以生成各種客戶端模型,如HTML、WML、 XML以及JavaScript等。通過這些標簽,你可以很容易建立大規模的客戶端模型,并由這些標簽自動處理客戶端請求。

接下來讓我們來看一個如何使JSF和JSP在一起工作的例子。在JSF中有兩個庫。第一個叫做內核庫,在這個庫中包含了各種主要的標簽,如配置組件、管理事件、驗證輸入信息等。第二個庫的主要功能是將HTML和JSF的各種標簽相對應。每一個JSF標簽都會對應一個HTML組件。如UIInput標簽對應了HTML中的文本框或密碼框。

在JSF標簽中文本輸入框叫做inputText,而密碼輸入庫叫inputSecret。下面是一個簡單的JSF和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.   <meta HTTP-EQUIV="Content-Type" CONTENT="text/html;CHARSET=GB2312">   
  6.   <title>第一個JSF程序</title>   
  7.   </head>   
  8.   <body>   
  9.    <f:view>   
  10.    <h:form id="simpleForm">   
  11.    <h:outputText id="favoriteLabel" value="請輸入一個數字:"/>   
  12.    <h:inputText id="favoriteValue" value="#{simple.longValue}">   
  13.     <f:validateLongrange maximum="30" minimum="0"/>   
  14.    </h:inputText>   
  15.    <p/>   
  16.    <h:commandButton id="submit" value="提交" action="#{simple.simpleActionMethod}"/>   
  17.    </h:form>   
  18.    </f:view>   
  19.   </body>   
  20.               </html> 

在上面的代碼中,我們可以了解到JSF是如何同JSP集成的。我們首先可以看到一個內核標簽:view。然后是幾個JSF組件。如form、 outputText、inputText以及commandButton。這幾個組件被放到form中從而開成了form中的一部分。在程序的最開始,必須使用import導入兩個標簽庫。代碼如下。

  1. <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>   
  2.               <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %> 

上面2行代碼聲明了JSP中要使用哪一個JSF標簽庫。內核庫使用前綴(prefix)f聲明,而HTML庫使用前綴(prefix)h聲明。這兩個前綴并不是必須要使用,而只是一個建議。在程序中,內核庫必須要使用,因為view在所有的 JSF頁中必須使用。而HTML標簽在運行時將JSF標簽轉化為HTML組件,這個h前綴并不是必須的,而是JSF規范推薦使用的,這樣,我們使我們的 JSF程序更易讀。

在聲明后是幾行標準的HTML語句,本文不再詳述。從 f:view 開始,是一段JSF語句。這段代碼如下所示:

  1. <f:view>   
  2.   <h:form id="simpleForm">   
  3.   <h:outputText id="favoriteLabel" value="請輸入一個數字:"/>   
  4.   <h:inputText id="favoriteValue" value="#{simple.longValue}">   
  5.   <f:validateLongrange maximum="30" minimum="0"/>   
  6.   </h:inputText>   
  7.   <p/>   
  8.   <h:commandButton id="submit" value="提交"   
  9.   action="#{simple.simpleActionMethod}"/>   
  10.   </h:form>   
  11.              </f:view> 

/f:view 標簽預示著JSF的開始,而它的下一個標簽form將建立一個HTML Form。而outputText標簽相當于HTML中的label組件。inputText標簽相當于HTML中的textField組件。而 commandButton標簽相當于HTML中的submit按鈕。

【編輯推薦】

  1. JSF2中Ajax事件和錯誤
  2. 簡述JSF程序配置
  3. Java開發三劍客JSF2.0、EJB3.1、JPA2.0現狀及發展
  4. 在JSF/JSP中集成FCKEditor
  5. JSF+Seam框架學習心得
責任編輯:佚名 來源: 中國IT實驗室
相關推薦

2011-06-22 10:13:58

TRILLFCoESTP

2009-06-23 09:33:20

FCKEditorJSFJSP

2009-06-26 11:15:08

JSF入手JSP

2009-07-03 14:46:42

JSP開發框架JSFTapestry

2009-06-23 13:21:26

JSF和Spring

2009-07-14 15:42:38

MyEclipse開發

2009-07-01 15:59:07

JSP缺陷JSF規范

2009-07-07 14:04:55

JSP入門

2019-12-23 13:52:51

區塊鏈物聯網IOT

2009-06-22 15:35:31

JSF和Struts

2009-06-26 13:48:57

G4JSFGWTJSF

2009-07-14 16:25:04

MyEclipse開發

2009-06-22 14:22:41

JSF和Tapestr

2009-07-14 16:07:46

MyEclipse開發

2009-07-02 09:13:25

什么是JSPServlet

2009-06-24 13:50:29

JSF和MVC

2009-06-24 16:42:17

JSF和Facelet

2011-06-30 10:20:38

JSFMVC

2009-06-24 17:43:24

Struts和JSF

2009-06-24 16:16:30

JSF和Tapestr
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美日韩在线精品 | 亚洲欧洲精品在线 | 在线亚洲一区二区 | 亚洲欧美激情精品一区二区 | 91九色视频| 91麻豆精品国产91久久久更新资源速度超快 | 天天色天天射天天干 | 亚洲人久久 | 麻豆国产一区二区三区四区 | 九一在线观看 | 婷婷综合色 | 四色永久 | 日韩美女在线看免费观看 | 日韩欧美精品在线播放 | 成人污污视频 | 亚洲欧美中文日韩在线v日本 | 先锋av资源在线 | 欧美理论 | 久久久久久99 | 能看的av | 国产网站在线播放 | 99re视频在线 | 亚洲小视频 | 99热都是精品 | 欧美成人一区二区 | 久久精品99久久 | 欧美一区视频 | 一区二区av | 亚洲欧美日韩电影 | 夜夜av | www四虎com| 伊人伊人 | 一级片aaa | 黄色网址免费看 | 国产成人免费视频 | www.一区二区三区.com | www.亚洲| 日批免费在线观看 | 亚洲欧美在线一区 | 日韩在线中文字幕 | 成人在线观看免费 |