自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

升級JSF1.2的艱難之旅

開發(fā) 后端
本文介紹把JSF從1.1升級JSF1.2,這個過程中暴漏出JSF的一些不足。

最近由于項目的要求需要把JSF從1.1升級JSF1.2,這個過程中暴漏出JSF的一些不足,如下:

一,原來在1.1下運(yùn)行很正常的backing bean 不再正常了,調(diào)試之后發(fā)現(xiàn)有些backing bean 竟然是使用的包級私有的構(gòu)造函數(shù),但是很納悶怎么在1.1下正常而1.2下就實例化不了,可能是JSF 1.1 的實現(xiàn)中是利用反射機(jī)制進(jìn)行backing bean的初始化吧,而1.2又改成調(diào)用backing bean 的默認(rèn)構(gòu)造函數(shù)了,所以碰到包級私有構(gòu)造函數(shù)的backin bean 才出現(xiàn)無法實例化的異常吧。

二,JSF提供的組件中的那個SelectOneMenu個人認(rèn)為有一個不足之處,如果服務(wù)器端初始化組件樹時候有四個待選項,到了客戶端頁面通過 ajax對待選項進(jìn)行了修改,比如改成了五個,這中情況下你頁面中的所有command類型的組件的方法綁定都會失效,跟蹤JSF源碼發(fā)現(xiàn)這個 SelectOneMenu的Render中首先進(jìn)行了一個個人認(rèn)為畫蛇添足的校驗,它首先校驗?zāi)闾峤簧蟻淼哪莻€值是否在組件初始化時候提供的待選項內(nèi),如果不是待選項中的某個則直接生命周期最后階段并忽略了中間的所有處理,包括你的方法綁定,這個問題很隱蔽,一般很難發(fā)現(xiàn),這個校驗個人認(rèn)為為客戶端使用 AJAX帶來了很大的麻煩,動態(tài)修改下來菜單的選項是很普通的ajax應(yīng)用了(比如多級聯(lián)動下拉菜單),為了給SelectOneMenu提供ajax能力我不得不重新實現(xiàn)了一個SelectOneMenu,現(xiàn)在我把工程升級JSF1.2,才發(fā)現(xiàn)JSF1.2的核心api正如官方所言沒有重大改動,只是統(tǒng)一了EL,但同時我確發(fā)現(xiàn)JSF的一些“不重要”的API改動確很大,我自己開發(fā)的組件用了1.1中的**util類,可是現(xiàn)在發(fā)現(xiàn)那些靜態(tài)方法現(xiàn)在都沒有了,這時不得不再次重新寫一個SelectOneMenu,這回一點(diǎn)兒它的**util類也不用,免的下回升級JSF1.2還重寫。

三,JSF 1.1 RI中的commandLink居然把dom中的onClick()自己占用了,發(fā)現(xiàn)JSF1.2 RI又還回來了,這點(diǎn)還是做的不錯的,不過卻發(fā)現(xiàn)JSF組件ID系統(tǒng)自動生成的算法改了,1.1中如果你沒有給頁面上的組件指定ID那么JSF會按照某種算法自動生成一個,可是1.2中不但為這個自動生成id的行為增加了一個“開關(guān)”,而且生成算法也改了,這回麻煩大了,當(dāng)初項目組中很多成員比較懶,頁面中的javascript直接就是用的那個自動生成的ID,這回生成算法一改頁面中的大部分javascript都癱瘓了,唉,懶人啊!

四,原來1.1與Spring整合的時候發(fā)現(xiàn)Spring提供的JSF變量解析器只能整合MyFaces,不得不使用了jsf-spring.jar進(jìn)行jsf RI+spring整合,現(xiàn)在突然發(fā)現(xiàn)JSF1.2 RI終于可以直接使用spring的變量解析器進(jìn)行整合了,這點(diǎn)兒還是不錯的。表揚(yáng)一下!

五,原來項目中的上傳下載使用了MyFaces的tomahawk組件包中的部分組件,可是到apache的網(wǎng)戰(zhàn)上一看雖然MyFaces-core出了1.2版本,但是tomahawk還仍然停留在1.1,唉!組件版本不兼容的煩惱??!

小毛病還有很多就不一一列舉了,總體一句話,JSF還真是有待進(jìn)一步發(fā)展啊!

【編輯推薦】

  1. 使JSF支持帶有HTMLMessage
  2. JSF如何使用ExternalContext
  3. 在JSF應(yīng)用中捕捉managed-bean構(gòu)造方法
  4. OSGi與JSF結(jié)合開發(fā)
  5. 淺談JSF的生命周期和對ajax處理的影響
責(zé)任編輯:佚名 來源: JavaEye
相關(guān)推薦

2009-06-25 11:21:36

JSF流行名詞

2011-08-10 10:33:18

路由器Cisco

2009-06-10 16:11:28

JavaFX SDK升級

2009-06-25 11:11:25

控制JSF切入點(diǎn)

2009-06-23 14:25:41

JavaFX1.2

2016-06-14 03:59:00

WWDC蘋果開發(fā)者大會

2009-09-23 17:56:45

JSF入門

2009-06-25 13:03:48

JSF的UI組件

2009-06-23 13:21:26

JSF和Spring

2009-06-17 15:18:38

JSF與Spring

2009-06-29 13:22:19

JSF技術(shù)JSF組件

2009-06-22 16:42:26

JSF的工作方式

2009-06-26 14:06:08

JSF基礎(chǔ)框架

2009-06-26 13:48:57

G4JSFGWTJSF

2021-06-21 09:46:44

軟件工業(yè) 技術(shù)

2012-02-24 15:25:45

ibmdw

2009-06-11 11:28:35

JSF生命周期

2011-07-21 17:11:09

AjaxJSF

2009-06-22 15:35:31

JSF和Struts

2009-06-22 14:07:46

JSF優(yōu)勢
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號