再來(lái)解釋JSF中的MBean,其實(shí)MBean就是一個(gè)JavaBean,因此它有著和JavaBean相同的要求。
最后是MBean的配置,JSF的MBean需要在faces-config文件中做配置,配置方法如下:
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 對(duì)其中的managed-bean-name,managed-bean-class和managed-bean-scope做一下解釋。
managed-bean-name是這一MBean的名字,用于其它位置的調(diào)用。
managed-bean-class是這一MBean的完整路徑,用于指明該MBean的類文件位置。
managed-bean-scope是這一MBean的有效范圍。
下面再對(duì)manage-bean-scope進(jìn)行一下詳細(xì)的解釋,其有效取值為:application, session, request, none。很容易理解,它們的存活周期分別如下:
大家知道,JSF是以JSP為基礎(chǔ)的,那么,對(duì)于JSP的九大對(duì)象來(lái)說(shuō),這四種scope的信息到底是怎么存儲(chǔ)的呢?
經(jīng)過(guò)測(cè)試證明,scope為applicatoin的MBean的實(shí)例保存在ServletContext中,也就是JSP中的application中,因此我們可以用如下的方法得到某個(gè)類的引用:
![]() ![]() ![]() 對(duì)session級(jí)別的MBean,我們可以用如下方法得到其引用:
![]() ![]() ![]() 當(dāng)然,我們也可以用其它的方法得到session對(duì)象后,從session中取出實(shí)例。
對(duì)request級(jí)別的MBean,我們可從request對(duì)象中取得,代碼如下:
![]() ![]() ![]() ![]() 至于none類型的MBean,應(yīng)該只能得到新的實(shí)例了。
當(dāng)然,JSF提供了另外的訪問(wèn)MBean的方法,我們可以用如下的代碼得到MBean的實(shí)例:
![]() ![]() ![]() ![]() 也可用如下的代碼直接得到MBean的一個(gè)屬性:
![]() ![]() ![]() ![]()
|
|
來(lái)自: chanvy > 《我的圖書(shū)館》