成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

JavaBean與MBean詳解

開發 后端
本文向您介紹JavaBean與JSF中MBean的區別,通過實例和配置對JSF中的Mbean的調用和有效范圍作出解釋。

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

其實JavaBean只是一個特別的Java類而已。在JavaBean中,對私有的域用getXXX和setXXX來實現存取,并且必須有一個無參數的構造函數,如下類就是一個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. }   
  8. public String getPassword(){   
  9. return password;    
  10. }   
  11. public void setUserName(String userName){   
  12. this.userName = userName;    
  13. }   
  14. public void setPassword(String password){   
  15. this.password = password;    
  16. }   
  17. //如果一個類中無構造函數,Java會為它加一個默認的空的無參數的構造函數,   
  18. //因此,如無其它構造函數,可省略該構造函數   
  19. public UserInfo(){   
  20. }   
  21. }   

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

做過Model1開發的人會知道,JavaBean的引入方式可以是使用標簽<jsp:useBean>來引入的,不需開發人員實例化即可產生一個該類的實例,因為實例是由Web容器產生的,所以我們必須提供無參數的構造函數由Web容器來調用。

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

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

  1. <managed-bean>   
  2.     <description>demo of config</description>   
  3.     <display-name>userInfo</display-name>   
  4.     <managed-bean-name>user</managed-bean-name>   
  5.     <managed-bean-class>net.moon.beans.UserInfo</managed-bean-class>   
  6.     <managed-bean-scope>session</managed-bean-scope>   
  7. </managed-bean>   

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

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

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

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

Name          Scope
Application  整個應用
Session      整個對話
Request      整個請求
None         需要時,臨時

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

◆經過測試證明,scope為applicatoin的MBean的實例保存在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");
當然,我們也可以用其它的方法得到session對象后,從session中取出實例。

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

◆至于none類型的MBean,應該只能得到新的實例了。

當然,JSF提供了另外的訪問MBean的方法,我們可以用如下的代碼得到MBean的實例:
 
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);

 

【編輯推薦】

  1. 自學Javabean迅速成為Java高手
  2. JavaBeans、EJB和POJO詳解
  3. JavaBean與EJB的不同
  4. 給JavaBeans增加XPath功能
  5. JavaBean使用技巧
責任編輯:佚名 來源: cnblogs
相關推薦

2009-06-15 10:21:07

基于JBossMBean

2009-07-03 17:33:06

JSP中調用JavaB

2009-07-06 17:07:11

JSP實例

2009-02-01 10:04:44

JSPJavaBeanJavaBean應用

2009-06-12 11:46:39

JavaBeanEJB

2009-02-16 09:25:43

EJBJavaBeanWebSphere

2009-07-07 15:57:29

JSP購物車

2014-12-12 10:13:12

JavaScript

2011-06-24 09:39:05

2009-07-09 16:01:27

2011-10-10 09:11:09

Java

2009-07-17 14:57:41

SwingWorkerSwing程序

2013-03-21 15:27:09

LinuxUnix

2010-01-06 16:47:53

Linux內核

2009-09-23 12:48:54

Hibernate I

2010-09-10 16:21:58

JavaScript

2011-04-13 09:16:55

泛型

2019-04-18 15:00:36

2010-03-19 13:53:36

云計算

2010-08-12 13:15:26

MySQL集群
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩精品一区二区三区视频播放 | 四虎在线观看 | 91成人精品 | 99这里只有精品视频 | 热久久久| av国产精品 | 欧美色综合一区二区三区 | 精精国产xxxx视频在线播放7 | 激情a | 密室大逃脱第六季大神版在线观看 | 欧美在线a | 特级毛片www| 真人毛片 | 一区二区三区国产精品 | 一区二区高清 | 黑人一级黄色大片 | 影音先锋中文字幕在线观看 | 国产精彩视频在线观看 | 中文字幕亚洲区一区二 | 欧美高清性xxxxhd | 伊人在线视频 | 国产精品久久久久不卡 | 激情五月婷婷丁香 | 欧美一级黑人aaaaaaa做受 | 精品国产欧美在线 | 91欧美激情一区二区三区成人 | 中文字幕视频在线观看免费 | 成人精品久久 | 国产一区二区三区欧美 | 日韩欧美国产精品一区二区三区 | 久久久久久国模大尺度人体 | 中文字幕一区二区三区四区五区 | 亚洲一区二区电影网 | 欧美在线观看一区 | 国产精品18hdxxxⅹ在线 | 日韩日韩日韩日韩日韩日韩日韩 | 成人a视频片观看免费 | 久久精品福利 | 欧美日韩高清免费 | 中文字幕在线视频精品 | 国产日产精品一区二区三区四区 |