亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JSP > 正文

JSP和JSF雙劍合并 打造完美Web應用

2019-11-18 16:44:13
字體:
來源:轉載
供稿:網友

  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

  JSF和JSP是一對新的搭檔。JSP是用于后臺的邏輯處理的技術,而JSF恰恰相反,是使開發人員能夠快速的開發基于 Java 的 Web 應用程序的技術,是一種表現層技術。目前,JSF1.2已經正式作為一個標準加入了Java EE 5中。

  作為一種高度組件化的技術,開發人員可以在一些開發工具的支持下,實現拖拉式編輯操作,用戶只需要簡單的將 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結合的用戶接口程序。

<%@ taglib uri="<%@ taglib uri="<html>
<head>
<meta HTTP-EQUIV="Content-Type" CONTENT="text/html;CHARSET=GB2312">
<title>第一個JSF程序</title>
</head>
<body>
?。糵:view>
?。糷:form id="simpleForm">
 <h:outputText id="favoriteLabel" value="請輸入一個數字:"/>
?。糷:inputText id="favoriteValue" value="#{simple.longValue}">
  <f:validateLongrange maximum="30" minimum="0"/>
?。?h:inputText>
?。紁/>
?。糷:commandButton id="submit" value="提交" action="#{simple.simpleActionMethod}"/>
?。?h:form>
?。?f:view>
</body>
</html>

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

<%@ taglib uri="<%@ taglib uri="

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

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

<f:view>
<h:form id="simpleForm">
<h:outputText id="favoriteLabel" value="請輸入一個數字:"/>
<h:inputText id="favoriteValue" value="#{simple.longValue}">
<f:validateLongrange maximum="30" minimum="0"/>
</h:inputText>
<p/>
<h:commandButton id="submit" value="提交"
action="#{simple.simpleActionMethod}"/>
</h:form>
</f:view>

 ?。?f:view>標簽預示著JSF的開始,而它的下一個標簽form將建立一個HTML Form。而outputText標簽相當于HTML中的label組件。inputText標簽相當于HTML中的textField組件。而commandButton標簽相當于HTML中的submit按鈕。運行這個JSP程序,將得到如圖1所顯示效果。

<%@ taglib uri="<%@ taglib uri="<html>
<head>
?。糾eta HTTP-EQUIV="Content-Type" CONTENT="text/html;CHARSET=GB2312">
<title>溫度轉換程序</title>
</head>
<body>
?。糵:view>
?。糷:form>
 <div>
 ?。糷:outputText id="fahrenheitLabel" value="請輸入華氏溫度:"/>
 ?。約pan>
  ?。糷:inputText id="temperature" value="#{tc.fahrenheitTemp}">
   <f:validateDoublerange minimum="-100.0" maximum="100.0"/>
  ?。糵:valuechangeListener type="tempconv.page.TCChangedListener"/>
  </h:inputText>
 ?。?span>
 </div>
?。糳iv>
  <h:outputText id="celsiusLabel" value="攝氏溫度:"/>
  <span>
  ?。糷:outputText id="celsiusValue" value="#{tc.celsiusTemp}">
   <f:convertNumber maxFractionDigits="3" type="number"/>
 ?。?h:outputText>
 ?。?span>
?。?div>
?。糳iv>
  <h:commandButton value="轉換" action="#{tc.convert}">
 ?。?h:commandButton>
?。?div>
?。?h:form>
?。?f:view>
</body>
</html>

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
97免费中文视频在线观看| 亚洲无限乱码一二三四麻| 欧美激情精品久久久久久黑人| 国产噜噜噜噜久久久久久久久| 欧美裸体视频网站| 亚洲女人被黑人巨大进入al| 国产福利视频一区二区| 日本高清不卡的在线| 国产成人91久久精品| 国产视频观看一区| 国产日韩欧美成人| 日韩在线视频线视频免费网站| 亚洲国语精品自产拍在线观看| 高清视频欧美一级| 狠狠操狠狠色综合网| 亚洲精品美女在线观看播放| 国产精品久久不能| xx视频.9999.com| 精品国产拍在线观看| 日本一区二区不卡| 91美女片黄在线观| 欧美成人性生活| 国产午夜精品久久久| 欧美精品中文字幕一区| 色综合影院在线| 日韩va亚洲va欧洲va国产| 国内揄拍国内精品| 91精品美女在线| 97香蕉超级碰碰久久免费软件| 久久久久久国产精品美女| 欧美高清视频免费观看| 国产精品视频大全| 8x海外华人永久免费日韩内陆视频| 日韩免费视频在线观看| 国产精品视频专区| 久久久久久久久久久久久久久久久久av| 国产欧美日韩免费看aⅴ视频| 日韩中文理论片| 亚洲视频日韩精品| 国内精品久久久久久中文字幕| 黄色成人av在线| 日韩av毛片网| 国产精品欧美日韩久久| 亚洲第五色综合网| 亚洲第一网站男人都懂| 国产精品99久久久久久久久久久久| 亚洲三级免费看| 中文字幕视频在线免费欧美日韩综合在线看| 高跟丝袜欧美一区| 国产精品美女久久久久久免费| 久久免费高清视频| 久久精品福利视频| 91在线免费网站| 伊人久久精品视频| 国产精品1区2区在线观看| 亚洲色图色老头| 热re91久久精品国99热蜜臀| 亚洲视频欧洲视频| 精品久久久久久中文字幕| 亚洲女同精品视频| 国产精品观看在线亚洲人成网| 久久亚洲精品小早川怜子66| 日韩中文字幕视频在线| 国产精品九九久久久久久久| 91av成人在线| 欧美国产精品日韩| 青青在线视频一区二区三区| 国产精品视频xxx| 国产亚洲精品久久| 国产成人a亚洲精品| 欧美成人亚洲成人日韩成人| 日韩网站免费观看| 亚洲精品按摩视频| 欧美日韩在线第一页| 日本成人黄色片| 欧美日韩一区二区免费在线观看| 亚洲毛片在线免费观看| 日韩欧美高清在线视频| 亚洲精品在线不卡| 欧美成年人在线观看| 亚洲美腿欧美激情另类| 国产精品日韩久久久久| 91精品国产高清久久久久久| 欧美二区乱c黑人| 最近的2019中文字幕免费一页| 久久久999精品视频| 久久久久成人网| 国产精品视频永久免费播放| 国产精品电影一区| 九九热r在线视频精品| 日韩在线观看网址| 成人黄色生活片| 日本中文字幕成人| 欧美一级淫片丝袜脚交| 亚洲免费电影在线观看| 亚洲国产欧美一区二区三区久久| 亚洲图中文字幕| 亚洲爱爱爱爱爱| 国产精品入口夜色视频大尺度| 亚洲在线观看视频网站| 亚洲天堂男人天堂女人天堂| 欧美有码在线视频| 欧美有码在线视频| 欧美专区在线观看| 色偷偷偷综合中文字幕;dd| 国产在线精品成人一区二区三区| 日韩最新中文字幕电影免费看| 欧美老女人在线视频| 亚洲天堂一区二区三区| 午夜精品视频网站| 97免费视频在线播放| 欧美日韩国产一区二区三区| 尤物九九久久国产精品的分类| 欧美中文字幕第一页| 成人黄色av播放免费| 欧美大秀在线观看| 日韩av一卡二卡| 庆余年2免费日韩剧观看大牛| 欧美黄色www| 国产一区在线播放| 成人网欧美在线视频| 国产精品丝袜一区二区三区| 欧美综合国产精品久久丁香| 欧美激情在线观看| 午夜精品美女自拍福到在线| 国产精品一区二区久久久久| 欧美日韩国产中文精品字幕自在自线| 亚洲九九九在线观看| 成人午夜激情网| 最近2019中文字幕一页二页| 日本在线观看天堂男亚洲| 国产精品久久电影观看| 久久91亚洲精品中文字幕| 日韩久久精品电影| 久久久久这里只有精品| 亚洲精品按摩视频| 亚洲美女黄色片| 97在线精品国自产拍中文| 亚洲精品国产综合久久| 欧美激情欧美激情在线五月| 欧美大片在线影院| 中日韩美女免费视频网站在线观看| 成人精品一区二区三区电影免费| 狠狠色狠狠色综合日日小说| 久久综合久久88| 国产久一一精品| 大荫蒂欧美视频另类xxxx| 日韩美女毛茸茸| zzjj国产精品一区二区| 国产视频在线一区二区| 欧美成人在线影院| 亚洲精品国产品国语在线| yw.139尤物在线精品视频| 亚洲欧美一区二区精品久久久| 色播久久人人爽人人爽人人片视av| 日韩福利视频在线观看| 欧美精品亚州精品| 亚洲精品理论电影| 国产精品黄色av| 亚洲精品美女久久久久| 欧美成年人在线观看| 欧美激情精品在线| 日韩成人av在线| 国产精品久久久久影院日本|