欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
選擇JSF不選Struts的十大理由
一個(gè)客戶(hù)不知道該選用Struts還是JSF。就像你預料的那樣,我通常會(huì )問(wèn):這2中框架之間有什么區別?當然,除了我的這個(gè)客戶(hù)外很多人都面臨這樣的選擇。

    總的來(lái)說(shuō),我建議在新項目中優(yōu)先考慮JSF。雖然常常有一些商業(yè)上的因素迫使我們?yōu)楝F有的項目選擇了Struts,而且那些解決方案還有待考驗,但是,讓我們面對一個(gè)事實(shí):JSF比Struts好多了。

    下面是我選擇JSF而不選Struts的十大理由:

  • 1.Components(組件)
  • 2.Render Kits
  • 3.Renderers
  • 4.Value Binding Expressions(值綁定表達式)
  • 5.Event Model(事件模型)
  • 6.Extensibility(可擴展性)
  • 7.Managed Beans(Dependency Injection 依賴(lài)注入)
  • 8.POJO Action Methods
  • 9.JSF is the standard Java-based web app framework (JSF是java web應用程序的標準框架)
  • 10.There‘s only one Struts(只有一個(gè)Struts)

    10.There‘s only one Struts(只有一個(gè)Struts) Struts 是一個(gè)開(kāi)源產(chǎn)品,然而JSF是一個(gè)標準。這個(gè)細節常常被新的JSF學(xué)習者忽略,其實(shí)這是顯而易見(jiàn)的,因為我們有多個(gè)JSF的實(shí)現。雖然JSF還很不成熟,但是我們已經(jīng)有了2個(gè)優(yōu)秀的JSF實(shí)現可以選擇:Sun的參考實(shí)現和Apache的MyFaces。另一方面,我們只有一個(gè)Struts。

    9.JSF is the standard(JSF是標準) JEE 5.0要提供一個(gè)JSF的實(shí)現,這表明JSF不久將會(huì )無(wú)處不在。這可能與你無(wú)關(guān),但是和工具供應商密切相關(guān)?,F在大概有50個(gè)java web應用程序框架,工具供應商不會(huì )情愿去支持一個(gè)特別的框架,但是他們會(huì )毫不猶豫的去支持一個(gè)標準。而且不止供應商,開(kāi)源項目也會(huì )迅速的聚集在JSF的四周,爭先恐后的去實(shí)現相同的功能。比如說(shuō),直到我們去實(shí)現本質(zhì)上和Shale的Tapestry差不多的視圖的時(shí)候,我才知道Facalets。(從長(cháng)遠來(lái)看,我相信這種冗余是件好事,會(huì )給我們帶來(lái)好處)

    8.POJO Action Methods Struts的行為是和 Struts的API綁定在一起的,但是JSF的行為方法可以在POJPO中實(shí)現。這意味著(zhù)你不用在表單和模型對象之間實(shí)現一個(gè)多余的行為層。順便說(shuō)一下,在JSF里面沒(méi)有行為對象,行為在模型對象中實(shí)現。但是也請注意一點(diǎn):如果你愿意你也可以生成與JSF獨立的行為對象。在Struts里面,你有 Form Bean和Action Bean。Form Bean包含數據而Action Bean包含邏輯。OO狂會(huì )想去合并前2者,在Struts你辦不到。但是在JSF中,你可以分開(kāi)數據和邏輯,也可以合并到一個(gè)對象中,一切由你決定。

    7.Managed Beans(Dependency Injection 依賴(lài)注入) 和Spring一樣,JSF也使用了依賴(lài)注入(DJ)(或控制反轉(IoC))去實(shí)例化和初始化Bean。Struts的確為你生成了Form Bean和Action Bean,但是JSF可以為你生成各種各樣的Managed Bean。

    6.Extensibility(可擴展性) 這個(gè)很重要。JSF有6個(gè)對象實(shí)現了這個(gè)框架的大部分功能,而且你可以很容易的用你自己的實(shí)現代替原有實(shí)現。比如你想加一個(gè)自定義參數在JSF表達式語(yǔ)言里面,或是添加一個(gè)自己的視圖控制器以便于區分組件和HTML。事實(shí)上Shale實(shí)現了上面的功能。如果你還沒(méi)有滿(mǎn)足,JSF提供了幾個(gè)地方你可以輕松的控制JSF的生命周期。Shale給你的會(huì )更多。

    5.Event Model(事件模型) JSF的事件模型使你可以對值改變,動(dòng)作,JSF生命周期階段變換等作出反應。在JSF1.1中,那些事件都是在服務(wù)器端處理的,這肯定是一個(gè)缺陷,好在JSF2.0計劃支持客戶(hù)端事件,拭目以待吧。

    4.Value Binding Expressions(值綁定表達式) 在Struts 中,你負責把數據從Form傳遞到模型對象。你實(shí)現的Action的execute方法是把Form作為一個(gè)參數。然后你再手動(dòng)的把數據從Form Bean里面取出放到模型對象里面。你要為應用里面的每個(gè)Form做這些事情,然而在JSF里面,你只需像這樣:#{model.property} 就夠了,其他的交給JSF來(lái)處理。

    3.Renderers 你有看過(guò)Struts的標簽的源代碼嗎?它直接生成HTML。JSF組件標簽什么都不生成,它和服務(wù)器上的一對component-renderer對應。Component維護組件狀態(tài),rendered負責獲得視圖。重點(diǎn)是renderers是可插拔的,即你可以根據自己需求實(shí)現然后替代掉默認實(shí)現。比如說(shuō)我在NFJS上面的Felix談話(huà)中舉例說(shuō)明了怎么去實(shí)現一個(gè)自定義的label renderer。你只需要配置你的renderer,JSF就會(huì )自動(dòng)在你的應用程序里面使用他。

    2.Render Kits 在幾年前我曾經(jīng)有份Struts咨詢(xún)工作,我們必須同時(shí)支持瀏覽器和無(wú)線(xiàn)設備,非常痛苦。但是用JSF來(lái)完成那個(gè)任務(wù)非常容易,因為你可以生成你自己的render kit-為一種特定顯示技術(shù)的renderers的集合-然后配置到JSF里面。

    1.Components(組件) 組件是Struts和JSF之間最大的區別。就像Swing一樣,JSF提供豐富的底層構件去開(kāi)發(fā)組件然后添加到標準的組件集。那些底層構件讓你很容易的生成自己的組件并且和別人共享?,F在我們到處都能看到自定義組件跳出來(lái),比如說(shuō)Oracle的ADF和MyFaces,兩者都提供了豐富的組件集,就像 javascript日歷,tree等等。當然,組件只是一部分。典型的是,組件都和一個(gè)獨立的renderer對應,這給我們帶來(lái)了真正的好處(看第3 條)。但是和JSF中的很多東西一樣,你不一定要墨守成規。只要你愿意,你可以實(shí)現render自己的組件,雖然這樣你會(huì )失去給組件加入別的 renderer的能力。

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
一定要選擇單一技術(shù)嗎?
Managed Bean
JAVA Web框架比較
JSF VS Tapestry 全面比較(一)
[轉]Java EE 5.0能取代Struts,Spring和Hibernate嗎?
Java EE 7 三大新特性的介紹
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久