在 JSF Portlets 中使用 CDI

2021-06-16 23:12:52 字數 1291 閱讀 8195

隨著cdi的portlet整合庫的放出,我們可以在jsf portlet中通過portlet橋,利用cdi帶來的巨大優點。

怎麼使用?

除了通常的portlet橋依賴以外,在portlet中使用cdi還需要:

org.gatein

cdi-portlet-integration

1.0.2.final

portletcdifilter

org.gatein.cdi.portletcdifilter

action_phase

event_phase

render_phase

resource_phase

yourportletname

portletcidfilter只包括接收到的portlet請求可以使用cdi。如果你的程式**框架需要處理portlet響應,則需要使用即可以處理請求又能夠處理響應的portletcdiresponsefilter來代替。

@requestscoped

使用此作用域的bean在portlet中的行為與常規的jsf不同。在portelt中,設定為actionrequest的bean類,其中任何修改的內容都無法到達portlet生命週期的其他階段,包括renderrequest。所以,建議不要乙個jsf的portlet中的cdi bean類中,使用此作用域。推薦使用gatein 3.6.0 final中新增的@portletlifecyclescoped。這個新的作用域允許為了渲染portlet,在乙個action裡面,設定你想要的資料;並且可以從actionrequest到renderrequest階段保持bean的實體。

@conversationscoped

臨時會話跟乙個標記為@requestscoped的bean類具有相同的行為。因此,不推薦為渲染jsf portlet而讓資料可用。

預計jsf portlet會提供對長會話的支援,但是,仍然有一些問題需要注意:

gatein scopes

最近,在gatein 3.6.0 final版本中提供了兩個新的作用域:@portletlifecyclescoped與@portletredisplayscoped。這兩個作用域在jsf portlet中非常實用,並且可以跟其他的cdi作用域的bean類進行無縫互動。這些作用域將在gatein的部落格文章中展開討論。

希望這篇文章能夠指出在jsf portlet開發中,使用cdi時的一些常見陷阱。

在中使用SQLDMO

曾幾何時,夥伴們為的公升級傷透了腦筋.往往程式的公升級趕不上資料庫的公升級 版本控制的好,這也許不是什麼問題,但對於很大一部分中國公司來說這是無法避免的 而有些n久以前的資料庫要使用新程式的時候,資料庫的公升級簡直就是無從下手.所以對比資料庫公升級的緊要性就逐漸的凸現出來.對於表和字段的公升級按道理...

在ClanLib中使用blend func

本文是對blend func完全沒有認識的人寫的,就好象一天前的我一樣。廢話我就留到後面才說吧。在clanlib庫中的cl su ce與cl sprite中都會有 這個函式 void set blend func cl blendfunc src,cl blendfunc dest 其cl blen...

在MFC中使用Tab Control

說實話,我剛開始看見tab control的時候,覺得很簡單。哪知道用了一下,才發現自己錯了。要用好它,還是需要一些技巧的。經過網上搜尋資料,以及我自己的摸索,把一些要點記錄在這裡。tab control的執行效果有點像property sheet,但兩者還是有一些區別。我的理解就是property...