1.不要盲目使用jsf1.2規(guī)范的實現(xiàn)框架:
目前sun,myfaces都推出了jsf1.2規(guī)范的實現(xiàn),但是各種jsf1.2支持并沒有跟上,所以小心使用。
jsf1.2的優(yōu)勢主要體現(xiàn)在統(tǒng)一的EL表達式,也就是說你可以在頁面上,混合使用只要支持了統(tǒng)一表達式的各種tag標記,同時可以享受jsf在表現(xiàn)層開發(fā)上帶來的強大支持,這就又需要兩個規(guī)范的支持,一個是jsp規(guī)范,一個是jstl規(guī)范,jsp2.1規(guī)范支持統(tǒng)一EL,它在tomat6.0.14以后才開始支持,glassFish默認支持,這些都是基礎(chǔ)設(shè)施,jstl把不同的taglibs定義了一個規(guī)范,你可以選擇各種實現(xiàn)了jstl規(guī)范的taglibs框架,目前大多數(shù)使用的是apache 帶的標準實現(xiàn),但是apache仍然沒有推出jstl1.2規(guī)范的實現(xiàn),只有jstl1.2規(guī)范以后開始支持統(tǒng)一EL,目前可能只有g(shù)lassfish有jstl1.2的默認實現(xiàn),我沒有試過能不能復(fù)用在其他容器下,但是在沒有驗證之前,請斟酌使用,jsf1.2在統(tǒng)一EL方面的常用應(yīng)用就是和jstl標記混合。如果你的項目仍然是tomcat5.5或者jboss的容器,使用jsf1.2沒有多大優(yōu)勢!而且jsf1.2雖然推出了不同的實現(xiàn)框架,但是增強框架仍然沒有看到,myfaces基于jsf1.2的 Tomahawk 還沒有推出支持1.2規(guī)范的實現(xiàn),如果僅僅使用sun的標準實現(xiàn)和myfaces的標準實現(xiàn),在項目中你會步履維艱!
2.如果沒有商業(yè)jsf框架選擇,請選擇myfaces的增強框架Tomahawk
sun的標準實現(xiàn)和myfaces的標準實現(xiàn)都是針對規(guī)范該有的內(nèi)容進行實現(xiàn),并沒有在組件方面進行必要的增強,這也是我主要使用Tomahawk這種對組件增強框架的原因。
3.現(xiàn)階段不要相信IDE工具支持
netbeans的可視化操作使用的是自己的jsf實現(xiàn),沒有myfaces框架的支持,需要等到6.0推出才能驗證它的優(yōu)勢,其他包括商業(yè)工具,使用后錯誤很多,感覺就是在測試我們的接受能力,現(xiàn)階段我對jsf的可視化工具不抱希望,如果你有信心,可以試試工具!現(xiàn)階段我推薦的方式是jsf手動開發(fā),在開發(fā)中積累經(jīng)驗!
4.不要隨意使用ajax支持的jsf組件。
如果你是web2.0的支持者,現(xiàn)階段還是不要用jsf好,jsf是下一代web2.0的主導(dǎo)。如果你是標準的企業(yè)開發(fā),建議使用標準方式進行頁面請求。jsf最大的貢獻不是支持ajax,而是內(nèi)部實現(xiàn)了一個可以透明化http無狀態(tài)的機制,這種機制讓我們在開發(fā)上高度關(guān)注組件化業(yè)務(wù),讓我們的開發(fā)能走的更遠,而使用ajax在理論上和標準方式一樣,在服務(wù)端具有統(tǒng)一的模型處理,但是javascript在工程開發(fā)上是高度的復(fù)雜和麻煩,jsf在處理純html上在現(xiàn)階段也是常常出現(xiàn)一些讓人接受不了的問題,有時候需要自己手動Hack,但是好在html還不復(fù)雜,如果頁面端大量javascript,你怎么辦,這還不算請求帶來的問題,ajax框架本身的質(zhì)量!
6.如果項目中決定使用jsf,請找一個能拿的住jsf的人,整個開發(fā)不僅僅會使用jsf,還有混合使用其他頁面技術(shù),如果這個人對表現(xiàn)層的理解包括jsf的理解不夠,項目在很多方面的質(zhì)量會有折扣,但是對于整個開發(fā)團隊使用jsf會比使用其他表現(xiàn)層技術(shù)更簡單,更高效,開發(fā)質(zhì)量也會更高,這都要看jsf負責(zé)人的技術(shù)應(yīng)變能力了!
5.還是老調(diào)重提,在項目中最好加入seam的支持,會讓jsf的開發(fā)變的簡單!
目前sun,myfaces都推出了jsf1.2規(guī)范的實現(xiàn),但是各種jsf1.2支持并沒有跟上,所以小心使用。
jsf1.2的優(yōu)勢主要體現(xiàn)在統(tǒng)一的EL表達式,也就是說你可以在頁面上,混合使用只要支持了統(tǒng)一表達式的各種tag標記,同時可以享受jsf在表現(xiàn)層開發(fā)上帶來的強大支持,這就又需要兩個規(guī)范的支持,一個是jsp規(guī)范,一個是jstl規(guī)范,jsp2.1規(guī)范支持統(tǒng)一EL,它在tomat6.0.14以后才開始支持,glassFish默認支持,這些都是基礎(chǔ)設(shè)施,jstl把不同的taglibs定義了一個規(guī)范,你可以選擇各種實現(xiàn)了jstl規(guī)范的taglibs框架,目前大多數(shù)使用的是apache 帶的標準實現(xiàn),但是apache仍然沒有推出jstl1.2規(guī)范的實現(xiàn),只有jstl1.2規(guī)范以后開始支持統(tǒng)一EL,目前可能只有g(shù)lassfish有jstl1.2的默認實現(xiàn),我沒有試過能不能復(fù)用在其他容器下,但是在沒有驗證之前,請斟酌使用,jsf1.2在統(tǒng)一EL方面的常用應(yīng)用就是和jstl標記混合。如果你的項目仍然是tomcat5.5或者jboss的容器,使用jsf1.2沒有多大優(yōu)勢!而且jsf1.2雖然推出了不同的實現(xiàn)框架,但是增強框架仍然沒有看到,myfaces基于jsf1.2的 Tomahawk 還沒有推出支持1.2規(guī)范的實現(xiàn),如果僅僅使用sun的標準實現(xiàn)和myfaces的標準實現(xiàn),在項目中你會步履維艱!
2.如果沒有商業(yè)jsf框架選擇,請選擇myfaces的增強框架Tomahawk
sun的標準實現(xiàn)和myfaces的標準實現(xiàn)都是針對規(guī)范該有的內(nèi)容進行實現(xiàn),并沒有在組件方面進行必要的增強,這也是我主要使用Tomahawk這種對組件增強框架的原因。
3.現(xiàn)階段不要相信IDE工具支持
netbeans的可視化操作使用的是自己的jsf實現(xiàn),沒有myfaces框架的支持,需要等到6.0推出才能驗證它的優(yōu)勢,其他包括商業(yè)工具,使用后錯誤很多,感覺就是在測試我們的接受能力,現(xiàn)階段我對jsf的可視化工具不抱希望,如果你有信心,可以試試工具!現(xiàn)階段我推薦的方式是jsf手動開發(fā),在開發(fā)中積累經(jīng)驗!
4.不要隨意使用ajax支持的jsf組件。
如果你是web2.0的支持者,現(xiàn)階段還是不要用jsf好,jsf是下一代web2.0的主導(dǎo)。如果你是標準的企業(yè)開發(fā),建議使用標準方式進行頁面請求。jsf最大的貢獻不是支持ajax,而是內(nèi)部實現(xiàn)了一個可以透明化http無狀態(tài)的機制,這種機制讓我們在開發(fā)上高度關(guān)注組件化業(yè)務(wù),讓我們的開發(fā)能走的更遠,而使用ajax在理論上和標準方式一樣,在服務(wù)端具有統(tǒng)一的模型處理,但是javascript在工程開發(fā)上是高度的復(fù)雜和麻煩,jsf在處理純html上在現(xiàn)階段也是常常出現(xiàn)一些讓人接受不了的問題,有時候需要自己手動Hack,但是好在html還不復(fù)雜,如果頁面端大量javascript,你怎么辦,這還不算請求帶來的問題,ajax框架本身的質(zhì)量!
6.如果項目中決定使用jsf,請找一個能拿的住jsf的人,整個開發(fā)不僅僅會使用jsf,還有混合使用其他頁面技術(shù),如果這個人對表現(xiàn)層的理解包括jsf的理解不夠,項目在很多方面的質(zhì)量會有折扣,但是對于整個開發(fā)團隊使用jsf會比使用其他表現(xiàn)層技術(shù)更簡單,更高效,開發(fā)質(zhì)量也會更高,這都要看jsf負責(zé)人的技術(shù)應(yīng)變能力了!
5.還是老調(diào)重提,在項目中最好加入seam的支持,會讓jsf的開發(fā)變的簡單!