国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

表現層框架Struts/Tapestry/JSF比較

開發 后端
本文描述Struts/Tapestry /JSF是目前J2EE表現層新老組合的框架技術。從誕生時間上看,Struts應該比較早,使用得非常廣泛,Tapestry 3.0逐漸引起廣泛的重視,正當Tapestry即將大顯身手時期,SUN推出JSF標準技術,雖然JSF一開始推出尚不成熟,留出了一段空白期,但是隨著JSF1.1標準推出,JSF開始正面出擊,粉面隆重登場了。

其實,JSF和Tapestry也并不是那種頭碰頭的相同競爭性技術,兩者還是各有側重點的,不過比較細微,但是這種細微點在實現一個大工程時可能帶來不同的感受和變化。

首先,我們從一個高度來抽象一下表現層框架應有的技術架構,下圖可以說所有表現層框架技術都必須實現的功能架構圖:

功能架構圖

當然,我們不必廢話羅嗦MVC模式,MVC模式是基準模式,現在框架技術已經不必再拼是否是MVC模式了。 在上圖MVC模式基礎上,一個表現層框架無外乎要實現圖中的三個功能:

1.在當前頁面能夠顯示一個組件對象的內容;而不是象純JSP那樣,需要在Jsp頁面寫入“調用對象方法”的Java代碼。

2.當用戶按下頁面的提交按扭或鏈接后,事件發生,這時應該觸發服務器端并將當前頁面的參數提交給服務器。這種機制表現在Form表單提交和有參數的鏈接<a href=""></a>

3.從一個頁面視圖直接跳轉到另外一個頁面視圖,單純的導航作用。

我們通過下表來比較這 三種框架在實現上圖各個功能時技術細節,從而得出他們的異同點和偏重點。

Struts Tapestry3.0 JSF
在View顯示的組件要求 組件必須繼承ActionForm 分顯式調用和隱式調用
組件必須繼承BaseComponent
普通POJO
無需繼承
Managed Bean
組件在View顯示粒度 View頁面只能顯示與表單對應的ActionForm,配置中Action ActionForm 頁面一般只能1:1:1關系。 可將組件嵌入頁面任何一行,對使用組件數量無限制。 同Tapestry
頁面分區tiles 使用Tiles標簽庫實現,需要另外tiles-def.xml配置文件 組件有自己的視圖頁面,通過調用組件即直接實現多個頁面組合。強大自然的頁面組合是其特點。 通過組件+標簽庫實現Subview,但如需重用Layout,還要結合Tiles.
頁面跳轉 使用標簽庫html:link中寫明目標URL,URL名稱需要對照配置文件的path命名,與組件Action耦合。 URL名稱是目標的組件名稱,不涉及URL和路徑等操作,方便穩固。 通過組件+標簽庫實現Subview,但如需重用Layout,還要結合Tiles.
參數傳遞 使用html:link時傳遞參數超過一個以上處理麻煩。 直接調用組件,直接賦予參數,沒有參數個數限制 參數分離傳遞給組件
事件觸發 通過表單提交submit激活,不能細化到表單里字段。 能夠給于表單每個字段貼一個事件,事件組件必須實現PageListener接口 同Tapestry,事件組件必須實習ActionListener 接口

Struts組件編程模型

Struts實現組件編程時有一些復雜:經常為一個頁面中需要引入多個組件而頭疼,因為Struts中無法直接引入多個組件,必須繞一些圈子:

一般分兩種情況:如果同一個Action就可以對付這些組件,那么在這種情況下有兩個辦法:

1.將這多個組件裝入一個ActionForm中,如使用MapForm等機制;

2.手工將多個組件裝入request/session等scope中,然后根據其名稱在jsp中獲得。

這兩個方法都有缺點: ***種辦法經常一個ActionForm弄得面目全非,變成一個大雜燴,違反了OO分派封裝的原則;第2種辦法其實又回到jsp編程;

第二種情況,如果這些組件必須有預先由不同的Action來處理,每個組件必須經過Action -->ActionForm流程,在這種情況下有兩種辦法:

1.使用Tiles, 不同流程輸出到同一個頁面的不同區域。是一種并行處理方式。

2. 對多個流程首尾相連,***Action forward結果是第二個Action,***輸出一個Jsp,在這個jsp中就可以使用前面多個流程的多個ActionForm了,這屬于串行方式。

Struts組件模型缺點

Struts組件編程必須限定在Action/ActionForm/JSP這三個框框中做文章,難度相對比較大,而Tapestry/JSF則沒有太多這些技術框框限制,兩者在組件編程方面更讓編程者自由一些,方便一些,這也是組件型框架的優勢吧。

Struts標簽庫

在Struts中,經常需要使用標簽庫來顯示組件ActionForm中內容,這就涉及到一個結合的問題,標簽庫是別人寫的,參考Struts的標簽庫用法,而組件是自己的,難度和麻煩就體現在這個結合點上。

JSF基本思路和Struts差不多,只不過換了不同標簽庫,也需要標簽庫+組件的結合思考,不過因為組件這里是通用組件,沒有什么限制,所以這樣比Struts要輕松一些。

Tapestry使用了組件庫概念替代了標簽庫,沒有標簽庫概念,這樣就沒有標簽庫和自己的組件需要結合的問題,都是組件的使用,組件中分Tapestry標準組件和自己定義的組件,這也是接觸了Jsp體系的人學習Tapestry面臨的一個思路轉換。

具體以頁面跳轉為例子,頁面跳轉是靠鏈接<a href="目標"></a> 實現,鏈接是頁面經常使用的元素。

Struts提供的html:link在頻繁使用就特別不方便,尤其在傳遞多個參數時:其中html:link的page值,是跳轉對方頁面或 Action的path,這個path一般需要到struts-config.xml查找Action的相應path,一旦配置文件path值修改,涉及到這個所有相關頁面都要修改。

JSF將鏈接概念劃分兩個方面:導航性質和事件激活,在導航方面還是需要到配置faces-config查詢Navigation的from-outcome的值。

由于Tapestry沒有標簽庫概念,只有組件或頁面兩個概念,因此,鏈接跳轉目標要么是組件,要么是頁面,簡潔簡單,它沒有多余的path概念,就是組件名,也就是對象名稱,組件名稱和path名稱合二為一。

總結

JSF在很大程度上類似Struts,而不是類似Tapestry,可以說是一種Struts 2.0,都是采取標簽庫+組件的形式,只是JSF的組件概念沒有象Struts那樣必須繼承ActionForm的限制;JSF在事件粒度上要細膩,不象 Struts那樣,一個表單一個事件,JSF可以細化到表單中的每個字段上。

JSF只有在組件和事件機制這個概念上類似Tapestry,但是不似Tapestry那樣是一個完全組件的框架,所以,如果你做一個對頁面要求靈活度相當高的系統,選用Tapestry是***考慮。

Struts/JSF則適合在一般的數據頁面錄入的系統中,對于Struts和JSF的選用,我目前個人觀點是:如果你是一個新的系統,可以直接從JSF開始;如果你已經使用Struts,不必轉換,如果需要切換,可以將JSF和Tapestry一起考慮。

另外,JSF/Tapestry不只是支持Html,也支持多種客戶端語言如WML或XUI等。

這三者之間關系:如果說Struts是左派;那Tapestry則是右派;而JSF則是中間派,中庸主義是SUN聯盟的一貫策略。

當然,你也可以發表你在實踐中這三者任何一個的使用感受,以使得后來者有一個比較。

【編輯推薦】

  1. JSF和Spring的集成
  2. JSF中使用自定義Navigation
  3. 簡單介紹JSF應用
  4. JSF動態生成固定表頭和行標的DataTable
  5. JSF和JSP是一對新的搭檔
責任編輯:佚名 來源: CSDN
相關推薦

2009-06-23 16:29:51

JSFSpring MVCStruts 2

2009-06-24 16:16:30

JSF和Tapestr

2009-06-22 14:22:41

JSF和Tapestr

2009-07-03 14:46:42

JSP開發框架JSFTapestry

2009-06-23 15:51:00

JSF框架

2009-06-24 17:43:24

Struts和JSF

2009-06-26 14:06:08

JSF基礎框架

2009-06-22 15:35:31

JSF和Struts

2009-06-22 15:52:15

JSF測試框架

2011-07-08 17:26:38

JSFStruts

2009-07-14 14:16:03

Tapestry 5.Tapestry教程Tapestry頁面

2009-06-12 18:53:35

Django控制層Django表現層

2009-06-19 17:05:08

MVC框架Struts和Spri

2009-09-03 16:52:44

Java Web開發框

2009-06-23 09:05:10

Seam框架JSF

2009-09-29 11:03:07

SaveNewOrdeStruts框架

2009-06-25 17:14:59

JSF框架

2009-06-25 14:53:35

自定義UI組件JSF框架

2009-06-22 16:24:33

JSF框架中使用的設計

2009-06-24 17:21:23

JSF框架設計模式
點贊
收藏

51CTO技術棧公眾號

精品一区二区三区四区| 欧美成人午夜激情视频| 97成人资源| 国产日韩换脸av一区在线观看| 在线亚洲成人| 国产成免费视频| 亚洲精品一区二区精华| av片在线免费观看| 日韩视频一区在线观看| 日本久久免费| 精品蜜桃传媒| 一本色道久久综合亚洲aⅴ蜜桃| 免费毛片在线不卡| 美女激情网站| 日韩无一区二区| 亚洲精品进入| 国产成人永久免费视频| 亚洲欧美国产精品va在线观看| 久久久久综合| 欧美1—12sexvideos| 亚洲视频在线观看视频| 99视频精品| 污视频网站在线免费| 欧美日韩高清在线一区| 日韩你懂的在线观看| 国产va免费精品观看精品视频 | 日本韩国精品在线| 深夜激情久久| 97超碰国产精品| 亚洲人成五月天| 秋霞电影一区二区| 国产乱码在线| 红桃视频国产一区| 在线欧美一级视频| 国产精选久久久久久| 亚洲精品久久久蜜桃| av综合网页| 一级毛片免费在线| 国产精品高潮呻吟久久av野狼| 亚洲人成网站在线| 国产精品国产三级国产在线观看 | 在线观看日韩高清av| 成人看片免费| 99精品一区二区三区的区别| 久久久国产在线视频| 亚州成人在线电影| 免费在线看成人av| 日韩精品成人在线观看| 免费动漫网站在线观看| 久久人人爽人人爽人人av| 欧美在线视频免费| 日韩精品中文字幕一区 | 欧美大胆视频| 2021av在线| 中国丰满人妻videoshd| 91欧美精品成人综合在线观看| 亚洲欧美日韩精品久久奇米色影视 | 91在线看片| 日日噜噜夜夜狠狠| 亚洲高清在线观看一区| 亚洲3p在线观看| 日韩成人中文电影| 色婷婷综合激情| 欧美国产日韩在线观看| 蜜桃av一区二区三区电影| 日韩欧美精品| 国产美女撒尿一区二区| 欧亚在线中文字幕免费| 精品视频一二三| 色老板在线视频| 日本成人在线免费视频| 天天好比中文综合网| 99r国产精品视频| 国产精品久久久久久久久久新婚 | 精品国产乱码久久久久久免费| 亚洲自拍偷拍图区| 91丝袜美腿高跟国产极品老师| 亚洲青色在线| 国模一区二区三区| 久久久久久久久久久妇女| 一区二区三区无毛| 日韩精品免费观看视频| 英国三级经典在线观看| 嫩草在线视频| 国产精品无码2021在线观看| 韩国视频一区二区三区| 2021国产视频| 分分操这里只有精品| 日本黄色播放器| 欧美中日韩免费视频| 国产经品一区二区| 91精品在线播放| 成人黄色午夜影院| 久久天天狠狠| 精品国产乱码久久久久久丨区2区 精品国产乱码久久久久久蜜柚 | 99久久综合| 久久久久久影院| 亚洲无线视频| 久久国产人妖系列| 国产不卡在线播放| 成人免费黄色大片| 久久综合狠狠综合久久综合88| gogo大胆日本视频一区| 国产精品你懂的在线| 国产精品久久久久毛片软件| www国产成人免费观看视频 深夜成人网 | 欧美18一12sex性处hd| 黄网站免费观看| 中文在线а√天堂官网| a√在线中文网新版址在线| av在线播放国产| 在线天堂资源www在线污| 久久国际精品| 成人在线国产| 午夜在线a亚洲v天堂网2018| 久草精品在线观看| 国产亚洲成年网址在线观看| 国产欧美中文在线| 色综合一个色综合亚洲| 日韩精品一区二区三区在线播放| 日韩精品免费观看| 久久久久久国产精品三级玉女聊斋| 992tv成人免费影院| 国产专区一区二区| 欧美日韩一区二区三区电影| eeuss影院95999部| 久久黄色美女电影| 亚洲日本va午夜在线电影| 亚洲视频日本| 91在线视频观看| 精品久久中文字幕久久av| 91精品国产入口| 亚洲成人激情在线| 色综合久久88色综合天天看泰| 91视频99| 在线观看高清免费视频| av网址在线看| 99久久影视| 国产精品区一区二区三区| 精品五月天久久| 成人午夜电影免费在线观看| 爱情岛论坛亚洲首页入口章节| 毛片av在线| 在线不卡欧美| 亚洲精品国产视频| 亚洲区中文字幕| yy111111少妇影院日韩夜片| 青青在线视频免费| 成人全视频免费观看在线看| 亚洲视频一二| 欧美日韩在线视频一区二区| 欧美激情精品久久久久久免费印度| 日本在线观看一区二区三区| jlzzjlzz欧美大全| 77成人影视| 99国产精品久久| 日韩高清av一区二区三区| 国产精品一区二区三区精品| 国产女优裸体网站| 色婷婷av一区二区三区丝袜美腿| 国产高清一区日本| 中文字幕一区二区精品| 日韩美女一区| 国产黄大片在线观看画质优化| 91视频久久| 欧美亚洲精品一区| 久久久久一区二区三区| av大片在线观看| 蜜桃av一区| 亚洲欧洲高清在线| 丰满少妇久久久| 日韩中文字幕一区二区高清99| 久久久久久久综合狠狠综合| 久久视频精品在线| 大荫蒂性生交片| 欧美猛男做受videos| 亚洲6080在线| 成人综合av网| 日本在线高清| 一区二区三区日本久久久| 色综合久久久网| 欧美一区二区在线| 国产一区一一区高清不卡| 久久久精品欧美丰满| 欧美怡春院一区二区三区| 亚洲啪啪aⅴ一区二区三区9色| 激情久久中文字幕| 日韩精品久久久久久福利| 成人午夜视频在线观看免费| 久久久久久久久久久久久久久久久久久久| 亚洲视频资源在线| 久久久神马电影| 国产成人一二片| 欧美顶级少妇做爰| 3344永久| 成人黄色图片网站| 国产精品国产a| 欧美一级爽aaaaa大片| 加勒比久久高清| 日韩美女在线视频|