日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

bean scope in jsf

 chanvy 2009-01-08
再來(lái)解釋JSF中的MBean,其實(shí)MBean就是一個(gè)JavaBean,因此它有著和JavaBean相同的要求。
        最后是MBean的配置,JSF的MBean需要在faces-config文件中做配置,配置方法如下:
    <managed-bean>
       
<description>demo of config</description>
       
<display-name>userInfo</display-name>
       
<managed-bean-name>user</managed-bean-name>
       
<managed-bean-class>net.moon.beans.UserInfo</managed-bean-class>
       
<managed-bean-scope>session</managed-bean-scope>
    
</managed-bean>
 
對(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。很容易理解,它們的存活周期分別如下:
Name
Scope
Application
整個(gè)應(yīng)用
Session
整個(gè)對(duì)話
Request
整個(gè)請(qǐng)求
None
需要時(shí),臨時(shí)
大家知道,JSF是以JSP為基礎(chǔ)的,那么,對(duì)于JSP的九大對(duì)象來(lái)說(shuō),這四種scope的信息到底是怎么存儲(chǔ)的呢?
經(jīng)過(guò)測(cè)試證明,scope為applicatoin的MBean的實(shí)例保存在ServletContext中,也就是JSP中的application中,因此我們可以用如下的方法得到某個(gè)類的引用:
FacesContext fc = FacesContext.getCurrentInstance();
UserInfo ui 
= (serInfo)fc.getExternalContext().getApplicationMap().get("user");
 
 
對(duì)session級(jí)別的MBean,我們可以用如下方法得到其引用:
FacesContext fc = FacesContext.getCurrentInstance();
UserInfo ub 
= (UserInfo)fc.getExternalContext().getSessionMap().get("userInfo");
 
 
當(dāng)然,我們也可以用其它的方法得到session對(duì)象后,從session中取出實(shí)例。
 
對(duì)request級(jí)別的MBean,我們可從request對(duì)象中取得,代碼如下:
FacesContext fc = FacesContext.getCurrentInstance();
HttpServletRequest request 
= (HttpServletRequest)fc.getExternalContext().getRequest();
UserInfo ui 
= (UserInfo)request.getAttribute("user");
 
 
至于none類型的MBean,應(yīng)該只能得到新的實(shí)例了。
 
當(dāng)然,JSF提供了另外的訪問(wèn)MBean的方法,我們可以用如下的代碼得到MBean的實(shí)例:
FacesContext context = FacesContext.getCurrentInstance();
ValueBinding binding 
=  context.getApplication().createValueBinding("#{user}"); 
UserBean user 
= (UserBean) binding.getValue(context); 
 
也可用如下的代碼直接得到MBean的一個(gè)屬性:
FacesContext context = FacesContext.getCurrentInstance(); 
ValueBinding binding 
=  context.getApplication().createValueBinding("#{user.name}"); 
String name 
= (String) binding.getValue(context); 

 

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多