<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-75  評論-193  文章-5  trackbacks-0

        由于前段時(shí)間使用JSF做了一個(gè)項(xiàng)目,不少使用JSF的兄弟們對JSF評價(jià)并不好,因此在學(xué)習(xí)的過程中一直在想,JSF究竟是不是應(yīng)該繼續(xù)學(xué)習(xí)繼續(xù)研究使用下去,在看完Seam In Action的第三章后,這個(gè)星期又對Struts2簡單學(xué)習(xí)了一下,終于決定結(jié)束JSF和JBoss Seam的學(xué)習(xí)了。

        因?yàn)閺腏SF的學(xué)習(xí)和Struts2的學(xué)習(xí)對比中明顯覺得JSF復(fù)雜,對于一個(gè)技術(shù)力量不是非常強(qiáng)的項(xiàng)目組來說,使用JSF當(dāng)你遇到一些問題時(shí),絕對是一件痛苦的事情。

        從自己的實(shí)踐中覺得JSF至少有兩個(gè)致命傷:

        1、覺得JSF貌似把簡單的事情搞得復(fù)雜化了,在傳統(tǒng)的MVC框架如Struts中,從request中獲取param很容易,也可以將param封裝為對象,在JSF中,希望將這一切都模型化,一切都以組件為中心,類似于Swing的架構(gòu),但是http的無狀態(tài)以及web的本質(zhì),使得一般JSF只能將組件樹存放在服務(wù)端,同時(shí)又不能象CS程序那樣方便的查看組件的狀態(tài)、屬性等信息。對于通常情況來說,JSF將其封裝的很好,不用我們開發(fā)者操心,但是當(dāng)遇到一些問題時(shí),對于開發(fā)者想去調(diào)試查看問題時(shí),問題就顯得很復(fù)雜了。

        2、JSF的自定義組件感覺超復(fù)雜,難度應(yīng)該比當(dāng)年自定義JSP標(biāo)簽更要高,試想一下,如果哪個(gè)組件不合意了,想改一下,還是比較困難的,除非對JSF組件有相當(dāng)?shù)纳钊肓私狻?/p>

        順便把項(xiàng)目中遇到的一個(gè)RichFaces的缺點(diǎn)列出來:

        RichFaces在生成組件的html時(shí),大量使用了Div,曾經(jīng)有過一個(gè)頁面有1千多行(在一個(gè)table中),頁面上還有一個(gè)RichFaces的下拉菜單,從而導(dǎo)致菜單響應(yīng)非常之慢,后來只有將rich:datatable換為普通的html:table,就沒有問題了。

        再看看Seam In Action中總結(jié)的JSF的缺點(diǎn):

        1、在JSF中初次請求的處理流程太過簡單,而后續(xù)請求則執(zhí)行了完整的復(fù)雜的處理流程。在JSF中假設(shè)第一個(gè)調(diào)用應(yīng)該是在頁面被渲染后執(zhí)行,但實(shí)際中有時(shí)我們需要在第一次請求時(shí)就執(zhí)行某些操作。在JSF中缺少象Struts中的Controller。

        2、所有的請求都是POST。瀏覽器處理POST請求是比較草率,當(dāng)用戶執(zhí)行了一個(gè)JSF Action操作后,點(diǎn)擊瀏覽器的刷新按鈕時(shí),瀏覽器會(huì)詢問用戶是否重新提交,這會(huì)令用戶非常困惑。

        3、僅僅擁有簡單基礎(chǔ)的頁面導(dǎo)向機(jī)制。

        4、過度復(fù)雜的生命周期。

        JBossSeam宣稱對于JSF存在的缺點(diǎn)都提供了解決方法,但是有一種更復(fù)雜的感覺。

        在Seam中,生成選擇的項(xiàng)目時(shí),有EAR和WAR的選項(xiàng),如果選擇了EAR選項(xiàng),那么Seam會(huì)生成四個(gè)項(xiàng)目,分別為war、ear、ejb、test四個(gè)類型的項(xiàng)目。有一次我將生成的項(xiàng)目從一個(gè)目錄拷貝到另一個(gè)目錄,切換了Eclipse的workspace,此時(shí)問題來了,ejb項(xiàng)目提示編譯錯(cuò)誤,提示無法找到某些class,找來找去找來找去......后來將項(xiàng)目關(guān)閉了一下,再打開錯(cuò)誤提示就沒有了。

        由這個(gè)問題我忽然想到,使用Seam集成JSF、EJB是不是太重量級了,如果采用EJB作為替代普通的POJO,對于一個(gè)小型的項(xiàng)目組來說,一般的規(guī)模就是三至五個(gè)人(我個(gè)人的理解),開發(fā)人員本來就不多,還要面對Seam劃分的四個(gè)項(xiàng)目,好像比較繁瑣,當(dāng)然采用war模式另當(dāng)別論。

        相比較而言,這個(gè)星期看了一些Struts2的資料,覺得Struts2的架構(gòu)非常清晰,易于理解。

        翻了很早之前的JavaEye上的一個(gè)帖子,提到JSF是面向開發(fā)工具的,如果能做到象VB那樣,就大有前途了,4年過去了,不要提JSF的開發(fā)工具了,就是Java各個(gè)方面的GUI開發(fā)工具,又有哪個(gè)能和VB相比呢,看來選擇JSF作為一個(gè)方向不是一個(gè)好選擇........還是及早放棄吧,哎...


        最后我覺得可以用這么一句話可以形容JSF,看起來很美,用起來不爽。

    posted on 2008-12-25 23:35 The Matrix 閱讀(2329) 評論(6)  編輯  收藏 所屬分類: JBoss Seam/JSF

    評論:
    # re: JBossSeam學(xué)習(xí)系列之五--完結(jié)篇 2008-12-26 10:57 | fool
    jsf高效省事 僅僅值綁定這一條就比struts2,struts強(qiáng)得太多
    當(dāng)然學(xué)習(xí)曲線的確比較陡 另外各開源的jsf實(shí)現(xiàn)并不按sun RI參考實(shí)現(xiàn)的方式做組件,自定義組件確實(shí)難度大了點(diǎn),學(xué)習(xí)諸如ADF之類就更麻煩了
    不過我還是喜歡jsf,很好  回復(fù)  更多評論
      
    # re: JBossSeam學(xué)習(xí)系列之五--完結(jié)篇 2008-12-26 12:05 | The Matrix
    @fool
    確實(shí)JSF的值綁定比較好用,但Struts2中的值綁定我簡單看了一下,發(fā)覺也沒有比JSF差太多,能否明確指明JSF的值綁定強(qiáng)在哪里,呵呵  回復(fù)  更多評論
      
    # re: JBossSeam學(xué)習(xí)系列之五--完結(jié)篇 2008-12-26 22:24 | Lf0x
    沒有什么技術(shù)是完美的,敢問Struts 2 能勝任所有的項(xiàng)目嗎? 才看了一周就能完全對另外一種技術(shù)做這樣的否定未免也太絕對了吧? 雖然還沒接觸 Struts 2 ,但是個(gè)人覺得 JSF 不差,況且企業(yè)級的開發(fā)并不是就局限在 Web 這個(gè)范圍呢的,JSF 有其自己的生存空間  回復(fù)  更多評論
      
    # re: JBossSeam學(xué)習(xí)系列之五--完結(jié)篇 2008-12-27 14:48 | yuanyc
    兄弟,服務(wù)器端組件模型有其優(yōu)點(diǎn)..jsf 確實(shí)是過于復(fù)雜
    建議你看看wicket..既實(shí)現(xiàn)了服務(wù)器端組件模型的優(yōu)點(diǎn),又比較簡單..
    沒有xml 配置文件, 沒有標(biāo)簽庫,只要html 模板和java代碼即可..  回復(fù)  更多評論
      
    # re: JBossSeam學(xué)習(xí)系列之五--完結(jié)篇 2008-12-27 16:16 | The Matrix
    @Lf0x
         說的不錯(cuò),沒有什么技術(shù)是完美的,Struts2不能勝任所有的項(xiàng)目,JSF也不能勝任所有的項(xiàng)目,任何東西都是相對的,沒有絕對合適的事情。
         JSF我并不是看了才一周,我們用它做了一個(gè)開發(fā)框架,包含了基本的權(quán)限管理及相應(yīng)的用戶管理等基本功能,然后有三個(gè)項(xiàng)目使用了這個(gè)開發(fā)框架(我負(fù)責(zé)了其中的一個(gè)項(xiàng)目)。但是相關(guān)項(xiàng)目組的兄弟們對JSF反響并不是很好。
         本來我打算沿著JSF這條路繼續(xù)走下去,所以打算繼續(xù)研究JSF和其相關(guān)的技術(shù),對這個(gè)開發(fā)框架繼續(xù)改進(jìn),但是研究了一段時(shí)間后,又看了Flex、Struts2后,覺得JSF確實(shí)比較復(fù)雜。而從web技術(shù)的發(fā)展方向來看,RIA肯定是重點(diǎn)。所以才對JSF有了動(dòng)搖。
         因?yàn)槲矣X得JSF既然不是以后web技術(shù)演進(jìn)的重點(diǎn)方向,又不是很好用,那么何必還讓好多人在它上面花費(fèi)時(shí)間呢。
         感謝yuanyc的建議,我有空再看看Wicket。
         以后可以做這個(gè)試驗(yàn),用JSF、Struts2、Wicket對實(shí)現(xiàn)常用的功能進(jìn)行一下比較,看看哪個(gè)最合適,呵呵。
      回復(fù)  更多評論
      
    # re: JBossSeam學(xué)習(xí)系列之五--完結(jié)篇 2009-01-06 17:28 | 範(fàn)
    剛剛完成一個(gè)項(xiàng)目,客戶端是Applet開發(fā)的,服務(wù)端 WEB-ESB-EJB,其中ESB做到了對EJB->EJB,SOAP->EJB,SOAP->SOAP,和EJB->SOAP的調(diào)用,其中EJB包括本地和遠(yuǎn)程兩種情況。

    就客戶端開發(fā)技術(shù),我覺得有實(shí)力的公司還是采用Applet。首先表現(xiàn)力很豐富,使用了簽名后就相當(dāng)于本地應(yīng)用程序,功能極為強(qiáng)大;其次本來就有豐富的swing控件,當(dāng)然本地?cái)?shù)據(jù)集控件支持SOAP需要新開發(fā)(本人開發(fā)的,哈哈)。這樣客戶端開發(fā)人員其實(shí)就是做SWING的客戶端開發(fā),效率不是蓋得。

    前后臺(tái)使用SOAP交互,擴(kuò)展很方便。  回復(fù)  更多評論
      
    主站蜘蛛池模板: 亚洲国产精品久久久久婷婷软件| 亚洲真人日本在线| 亚洲av日韩综合一区二区三区| 免费看男女下面日出水视频| 中国性猛交xxxxx免费看| 亚洲视频一区在线| 亚洲国产精品一区二区九九| 日本免费高清视频| 亚洲天然素人无码专区| 亚洲色婷婷综合久久| 91成人免费观看网站| 九九热久久免费视频| 久久久久精品国产亚洲AV无码| 亚洲国产日韩成人综合天堂| 亚洲第一网站免费视频| a高清免费毛片久久| 亚洲综合精品第一页| 日本亚洲视频在线| 国产一级淫片免费播放电影| 91香蕉国产线在线观看免费| 一出一进一爽一粗一大视频免费的 | 亚洲三级视频在线观看| 亚洲无码精品浪潮| 在线jyzzjyzz免费视频| 无码免费一区二区三区免费播放| 色偷偷尼玛图亚洲综合| 亚洲成年人电影网站| 在线观看亚洲精品国产| 国产免费卡一卡三卡乱码| 亚洲无砖砖区免费| a级黄色毛片免费播放视频| jizzjizz亚洲日本少妇| 亚洲人成电影院在线观看| 久久久久亚洲AV成人无码网站 | 久久久无码精品亚洲日韩软件| 免费精品国产自产拍在线观看图片| 视频免费在线观看| www成人免费视频| 美女又黄又免费的视频| 亚洲乱码在线卡一卡二卡新区| 久久久亚洲AV波多野结衣|