"從實(shí)現(xiàn)角度上說,基于jsp tag可以說是JSF的致命弱點(diǎn)之一. jsp tag從設(shè)計(jì)之始就一直是未經(jīng)過實(shí)踐考量,其設(shè)計(jì)無法支撐復(fù)雜的控件架構(gòu). 特別是早期JSF與標(biāo)準(zhǔn)的JSP tag不能互通實(shí)際上是明顯的設(shè)計(jì)缺陷, 而且性能問題是內(nèi)置在該設(shè)計(jì)中的. 現(xiàn)在雖經(jīng)多個(gè)版本的不斷補(bǔ)救, 但是為了兼容性, JSP Tag負(fù)擔(dān)過重, 它始終是基于文本處理模型,實(shí)際上不可能有什么本質(zhì)性的進(jìn)步. JSP tag模型過分孱弱必然造成JSF設(shè)計(jì)中大量處理過程堆疊到界面對象層,更加劇了JSF的模型復(fù)雜度和性能瓶頸。"
請問你認(rèn)為你真正理解JSF的組件架構(gòu)嗎? 你有真正去理解過JSF的架構(gòu)設(shè)計(jì)嗎?
請問JSF確實(shí)是必須基于JSP TAG嗎? facelets又是什么? 是替代方案還是補(bǔ)充?或者說是另一種視圖組織技術(shù)? JSF并非一定需要JSP為表現(xiàn)載體, 自然也并非一定要基于JSP Tag.
REST風(fēng)格又怎么樣? REST是什么時(shí)候提出來的? 正如REST提到的那樣,有些表現(xiàn)轉(zhuǎn)移是應(yīng)該明確的,但時(shí)代在進(jìn)步,并非所有的應(yīng)用都是那樣,下任何結(jié)論之前我們應(yīng)該先給定一個(gè)命題的場景(前提).
誠然, JSF的導(dǎo)航體系比STRUTS并未進(jìn)步多來,但并不代表我們不能定制其導(dǎo)航策略,正如SWF與JSF的協(xié)同一樣.
JSF架構(gòu)本身沒有問題, 問題在于目前對JSF的實(shí)現(xiàn)上, 目前只是可用組件還不多而已,大部分都需要自己開發(fā), 然而可喜的時(shí),目前已經(jīng)有許多商業(yè)的實(shí)現(xiàn),也有許多開源的實(shí)現(xiàn), 比如JBoss的richfaces, 看看別人實(shí)現(xiàn)的組件, 并非想象的那么重型,也并非想象中那么難用.關(guān)鍵看你如何用. 換句話說, 如果光頹頹地應(yīng)用JSF,的確有些煩鎖,但如果你能與SPRING集成起來使用,開發(fā)就會(huì)輕便許多.如果你的應(yīng)用是流程式的, 可以集成SWF, 這會(huì)讓你的應(yīng)用更加整潔.
PS.我所談到的這些技術(shù)并非空穴來風(fēng), 我本人已經(jīng)實(shí)踐了一年多了, 其實(shí)踐的項(xiàng)目不會(huì)是你想象中的那么小.
JSF技術(shù)有一些真正有價(jià)值的東西,但是根據(jù)我們的實(shí)踐,這些價(jià)值有其他更加優(yōu)雅的體現(xiàn)方式。 JSF不是必須采用JSP Tag, 但是它需要一種類似的技術(shù),而它在架構(gòu)設(shè)計(jì)中必然要照顧到這種技術(shù)實(shí)現(xiàn)。 其實(shí)witrix中的tpl技術(shù)也是一種tag技術(shù),只是它遠(yuǎn)比jsp tag要精致。
JSF架構(gòu)最大的問題就是開發(fā)新組件很麻煩,完全基于JSF構(gòu)建程序很繁瑣,最終提供給用戶的調(diào)用接口其實(shí)也有更加簡明的方式.
# re: 關(guān)于JSF[未登錄] 回復(fù) 更多評論
2007-07-30 17:52 by
下了個(gè)微軟的 Microsoft Visual Web Developer 2005 速成版, 感覺 JSF 跟 ASP.NET Web Form 的確很像. 微軟的組件類庫很方便, 很快速, 拖放幾下就可解決問題. 而且他們的設(shè)計(jì)器既能解析HTML,也能解析里面的 TagLib. 所以 Tag Lib 本身不是錯(cuò), 開發(fā)組件難點(diǎn)很大也不是錯(cuò). 微軟的 IDE 已經(jīng)幫你做好了所有的東西. 所以 JSF 難點(diǎn)就是 IDE 太差, 組件定制可以由專業(yè)廠商來做. 微軟的 .NET 控件從來不鼓勵(lì)程序員自己去做.
一句話, 每人都想做大自己掙錢, 才導(dǎo)致了這么多 Java 廠商 作出來的東西竟然還不如微軟一家公司做的. 那么多框架, 很多都是垃圾. 只有組件沒有 IDE 你讓人手寫代碼來做頁面?
JSF基于事件的開發(fā)模式與傳統(tǒng)JAVA web開發(fā)有很大的差異,導(dǎo)致很多老的JAVA程序員很難適應(yīng),
還有一點(diǎn)JSF缺少一個(gè)像Microsoft Visual Studio強(qiáng)大的開發(fā)工具,不過netbeans正往這個(gè)方向努力,
開發(fā)工具并不一定是生產(chǎn)力的主要來源