日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
JavaBean與MBean詳解

首先從Model1中的JavaBean說起,大家知道,Model1的基本架構(gòu)就是JSP頁面通過JavaBean訪問數(shù)據(jù)層,那么JavaBean到底是什么東東呢?

十多年的酉陽土家族苗族網(wǎng)站建設(shè)經(jīng)驗,針對設(shè)計、前端、開發(fā)、售后、文案、推廣等六對一服務(wù),響應(yīng)快,48小時及時工作處理。營銷型網(wǎng)站建設(shè)的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動調(diào)整酉陽土家族苗族建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計,從而大程度地提升瀏覽體驗。創(chuàng)新互聯(lián)從事“酉陽土家族苗族網(wǎng)站設(shè)計”,“酉陽土家族苗族網(wǎng)站推廣”以來,每個客戶項目都認(rèn)真落實(shí)執(zhí)行。

其實(shí)JavaBean只是一個特別的Java類而已。在JavaBean中,對私有的域用getXXX和setXXX來實(shí)現(xiàn)存取,并且必須有一個無參數(shù)的構(gòu)造函數(shù),如下類就是一個JavaBean文件。

 
 
 
  1. package net.moon.beans;  
  2. public class UserInfo { 
  3. private String userName;  
  4. private String password;  
  5. public String getUserName(){ 
  6. return userName;  
  7. public String getPassword(){ 
  8. return password;  
  9. public void setUserName(String userName){ 
  10. this.userName = userName;  
  11. public void setPassword(String password){ 
  12. this.password = password;  
  13. //如果一個類中無構(gòu)造函數(shù),Java會為它加一個默認(rèn)的空的無參數(shù)的構(gòu)造函數(shù), 
  14. //因此,如無其它構(gòu)造函數(shù),可省略該構(gòu)造函數(shù) 
  15. public UserInfo(){ 

需注意其中的格式要求,域名為***個單詞首字母小寫的(usernName),對應(yīng)一個域,分別有一個getUserName和setUserName兩個方法,來讀取和設(shè)置這一域,方法名為get/set + 域名(首字母大寫)。

做過Model1開發(fā)的人會知道,JavaBean的引入方式可以是使用標(biāo)簽<jsp:useBean>來引入的,不需開發(fā)人員實(shí)例化即可產(chǎn)生一個該類的實(shí)例,因為實(shí)例是由Web容器產(chǎn)生的,所以我們必須提供無參數(shù)的構(gòu)造函數(shù)由Web容器來調(diào)用。

再來解釋JSF中的MBean,其實(shí)MBean就是一個JavaBean,因此它有著和JavaBean相同的要求。

***是MBean的配置,JSF的MBean需要在faces-config文件中做配置,配置方法如下:

 
 
 
  1.  
  2.     demo of config 
  3.     userInfo 
  4.     user 
  5.     net.moon.beans.UserInfo 
  6.     session 
  7.  

對其中的managed-bean-name,managed-bean-class和managed-bean-scope做一下解釋。
 
managed-bean-name是這一MBean的名字,用于其它位置的調(diào)用。

managed-bean-class是這一MBean的完整路徑,用于指明該MBean的類文件位置。

managed-bean-scope是這一MBean的有效范圍。

下面再對manage-bean-scope進(jìn)行一下詳細(xì)的解釋,其有效取值為:application, session, request, none。很容易理解,它們的存活周期分別如下:

Name          Scope
Application  整個應(yīng)用
Session      整個對話
Request      整個請求
None         需要時,臨時

大家知道,JSF是以JSP為基礎(chǔ)的,那么,對于JSP的九大對象來說,這四種scope的信息到底是怎么存儲的呢?

◆經(jīng)過測試證明,scope為applicatoin的MBean的實(shí)例保存在ServletContext中,也就是JSP中的application中,因此我們可以用如下的方法得到某個類的引用: FacesContext fc = FacesContext.getCurrentInstance();
UserInfo ui = (serInfo)fc.getExternalContext().getApplicationMap().get("user");

◆對session級別的MBean,我們可以用如下方法得到其引用:
FacesContext fc = FacesContext.getCurrentInstance();
UserInfo ub = (UserInfo)fc.getExternalContext().getSessionMap().get("userInfo");
當(dāng)然,我們也可以用其它的方法得到session對象后,從session中取出實(shí)例。

◆對request級別的MBean,我們可從request對象中取得,代碼如下:
FacesContext fc = FacesContext.getCurrentInstance();
HttpServletRequest request = (HttpServletRequest)fc.getExternalContext().getRequest();
UserInfo ui = (UserInfo)request.getAttribute("user");

◆至于none類型的MBean,應(yīng)該只能得到新的實(shí)例了。

當(dāng)然,JSF提供了另外的訪問MBean的方法,我們可以用如下的代碼得到MBean的實(shí)例:
 
FacesContext context = FacesContext.getCurrentInstance();
ValueBinding binding = context.getApplication().createValueBinding("#{user}");
UserBean user = (UserBean) binding.getValue(context);

也可用如下的代碼直接得到MBean的一個屬性:

FacesContext context = FacesContext.getCurrentInstance();
ValueBinding binding = context.getApplication().createValueBinding("#{user.name}");
String name = (String) binding.getValue(context);


文章標(biāo)題:JavaBean與MBean詳解
網(wǎng)址分享:http://www.dlmjj.cn/article/cdeodog.html