`
c_fanatic
  • 浏览: 66258 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

JSF Manage Bean详解

    博客分类:
  • Java
阅读更多
首先从Model1中的JavaBean说起,大家知道,Model1的基本架构就是JSP页面通过JavaBean访问数据层,那么JavaBean到底是什么东东呢?

  其实JavaBean只是一个特别的Java类而已。在JavaBean中,对私有的域用getXXX和setXXX来实现存取,并且必须有一个无参数的构造函数,如下类就是一个JavaBean文件。
package net.moon.beans;

public class UserInfo ......{
private String userName;
private String password;

public String getUserName()......{
return userName;
}

public String getPassword()......{
return password;
}

public void setUserName(String userName)......{
this.userName = userName;
}

public void setPassword(String password)......{
this.password = password;
}

//如果一个类中无构造函数,Java会为它加一个默认的空的无参数的构造函数,
//因此,如无其它构造函数,可省略该构造函数
public UserInfo()......{

}
}


  需注意其中的格式要求,域名为第一个单词首字母小写的(usernName),对应一个域,分别有一个getUserName和setUserName两个方法,来读取和设置这一域,方法名为get/set + 域名(首字母大写)。

  做过Model1开发的人会知道,JavaBean的引入方式可以是使用标签<jsp:useBean>来引入的,不需开发人员实例化即可产生一个该类的实例,因为实例是由Web容器产生的,所以我们必须提供无参数的构造函数由Web容器来调用。

  再来解释JSF中的MBean,其实MBean就是一个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>


  对其中的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);

http://www.diybl.com/course/3_program/java/javajs/200834/102704.html
分享到:
评论

相关推荐

    JSF UI 组件详解

    ### JSF UI组件详解 #### 一、引言 JavaServer Faces (JSF) 是一个为简化企业级Java Web应用程序创建而设计的标准组件框架。它不仅提供了强大的模型-视图-控制器(MVC)架构,还引入了一系列标准UI组件,使得开发者...

    JSF标签详解JSFAPI

    这里是jsf的tags的书籍。主要讲述jsf的用法。

    poi读取并导出excel(jsf bean 页面的实现)

    POI读取并导出Excel(JSF Bean 页面的实现) 概述 本文将介绍如何使用POI库在JSF Bean页面中读取和导出Excel文件。通过该实现,可以实现下载地址的可选性,而不是写死的固定地址。 相关知识点 1. POI库的使用:...

    JSF 资源 managed bean 课件

    - **使用EL表达式引用Bean**:通过`#{beanName.propertyName}`语法可以在JSF页面中引用Bean的属性。 - **数据绑定**:可以直接将表单字段与Bean的属性进行绑定,从而简化数据处理流程。 - **事件监听**:可以定义...

    JSF 详解

    JSF 详解 JSF(JavaServer Faces)是一种基于Java技术的Web应用程序框架,用于简化Web应用程序的开发。JSF的核心概念是控件树,以MVC模式为基础,提供了一个灵活的Web应用程序开发框架。 结构 JSF的结构图可以分为...

    JSF开发环境详解

    ### JSF开发环境详解 #### 一、JSF与开发环境概述 JavaServer Faces (JSF) 是一种基于Java EE的标准技术,用于构建用户界面。它简化了Web应用程序的开发过程,提供了丰富的组件库和生命周期管理功能。为了搭建完整...

    第9章 JSF的托管Bean和国际化课件及源程序

    在本章节中,我们将深入探讨JavaServer Faces (JSF) 中的托管Bean(Managed Beans)以及如何实现国际化(Internationalization,通常简写为i18n)。这些是JSF框架中的核心概念,对于构建功能丰富的、多语言支持的Web...

    JSF 生命周期 实例详解

    例如,Struts需要手动处理表单bean和动作,而JSF允许直接将UI组件与JavaBean属性绑定,实现数据的自动同步。JSF的这种特性减少了手动编写代码的工作量,使得开发更高效,同时也更易于维护。 **自动服务器端视图管理...

    JSF标签详解.docx

    在实际开发中,网页设计师需要理解JSF标签的用法,并与程序员协作确定Bean的名称绑定,以便正确地将数据展示在页面上。此外,标签的属性和事件处理机制也是关键,例如,`value`属性用于绑定组件的值,`action`属性...

    通过JSF受管Bean操作数据库.doc

    通过JSF受管Bean操作数据库

    采用 JSF +后台Bean开发 大学学生管理系统

    - 编写后台Bean(Managed Bean)处理业务逻辑,实现数据的CRUD操作。 - 连接MySQL数据库,编写SQL语句实现数据的增删改查。 5. **测试**:单元测试、集成测试和系统测试,确保所有功能正常工作。 6. **部署**:...

    jsf开发详解--入门,文档

    **JSF(JavaServer Faces)**是Java平台上用于构建用户界面的Web应用程序框架,它提供了一种组件化、事件驱动的方式来开发...《JSF开发详解》文档将引导初学者逐步走进JSF的世界,从基础到实践,全方位解析JSF开发。

    jsf标签详解

    jsf标签详解,这是jsf学习的好资料,从简到复杂,从易易难,很快掌握技术

    core jsf 1.2 jsf 核心

    **JSF 1.2核心详解** JavaServer Faces (JSF) 是Java平台上的一个用于构建用户界面的组件模型框架,特别适用于Web应用程序的开发。JSF 1.2是该框架的一个重要版本,它在JSF 1.1的基础上进行了一系列的改进和增强,...

    JSF标签详解(一个不漏).doc

    JSF标签详解 JSF(JavaServer Faces)是一种用于构建Web应用程序的框架,它提供了一组标准的UI组件和API,帮助开发者快速构建Web应用程序。JSF标签是JSF框架中的一部分,它们是用于在JSP页面中定义UI组件和事件处理...

    基于JSF全注解框架

    **JSF全注解框架详解** JavaServer Faces (JSF) 是Java平台上的一个用于构建Web应用程序的MVC(Model-View-Controller)框架。它为开发者提供了丰富的组件库、事件处理机制以及强大的数据绑定能力。JSF的核心是组件...

    JSF 2 + Spring 3 integration example

    - 使用 `@ManagedBean` 和 `@ViewScoped` 或其他范围注解在 JSF 中定义 Managed Bean。 - 在 Spring 配置文件中,通过 `@Component` 或 `@Service` 注解将这些 Managed Bean 注册到 Spring 容器,并使用 `@Scope` ...

    jsf+spring整合

    7. **JSF Managed Bean和Spring Bean的协同工作**:JSF的Managed Bean通常在请求上下文中创建和销毁,而Spring Bean可以配置为单例或多例,根据需要选择合适的生命周期。 整合JSF和Spring可以增强应用的灵活性和可...

    JSF2.0详解(英文版)

    JavaServer Faces (JSF) 2.0 是Java EE平台中的官方组件化视图技术,专为构建Web应用程序而设计。JSF的核心特性包括预定义的用户界面(UI)组件、事件驱动的编程模型以及对第三方组件的支持。其目标是易于扩展、使用...

    jsf入门实例教程

    这里,`h:inputText`和`h:commandButton`是JSF组件,`#{bean.name}`和`#{bean.submit}`则是EL(Expression Language)表达式,用于绑定到后台Bean的属性和方法。 **四、JSF Managed Bean** Managed Bean是JSF中的...

Global site tag (gtag.js) - Google Analytics