`

JSF注入

    博客分类:
  • java
阅读更多

JSF1.2依赖配置文件faces-config.xml 来实现 MBean的管理,到了2.0,我们可以使用注入的方式实现。

0.唠叨
JSR299规定了如何编写注入,但是JBoss的例子中使用 @Named,在我的程序中是失灵的,我必须使用@ManagedBean来实现。JavaEE6给了规范,为什么大家不按照统一的名字来实现内?

1.MBean的声明
JSF1.2实现MBean管理:
<managed-bean>
    <managed-bean-name>usersBean</managed-bean-name>
    <managed-bean-class>com.radvision.icm.faces.bean.directory.webbean.UsersBean</managed-bean-class>
    <managed-bean-scope>request</managed-bean-scope>
</managed-bean>

JSF2.0实现注入声明:
import javax.faces.bean.*;

@ManagedBean
@ViewScoped
public class UsersBean

2.实现页面级范围MBean
JSF1.2/Richfaces3.3.x或更早版本:
只有application,session,request三个级别的MBean范围,若实现page级别的,需要在jsp/jsf/xhtml页面上声明该类为a4j:keepAlive。

JSF2.0的scope范围:
@ApplicationScoped
@CustomScoped
@NoneScoped
@RequestScoped
@SessionScoped
@ViewScoped
其中@ViewScoped用来实现页面级MBean的,可以替代a4j:keepAlive

3.实现对MBean的引用
JSF1.2可以从context中获取三个级别的MBean:
final ExternalContext externalContext = FacesContext.getCurrentInstance().getExternalContext();
return (HttpServletRequest) ;

(BeanName)externalContext.getRequest().getAttribute(beanName);
(BeanName)externalContext.getSession(true).getAttribute(beanName)
(BeanName)externalContext.getApplicationMap().get(beanName);


JSF2.0可以在使用MBean的类中实现依赖注入:

@ManagedProperty(value="#{beanName}")
private BeanName beanName;

public BeanName getBeanName() {
    return beanName;
}

public void setBeanName(BeanName beanName) {
    this.beanName = beanName;
}

分享到:
评论
2 楼 zhigewuwang 2010-07-11  
能不能注入受管的bean?譬如注入某SessionScoped的managedbean.
1 楼 shake822 2010-04-20  
我們用的是1.2的,這個注釋的還沒有用過

相关推荐

    JSF入门+JSF web实战+JSF2

    支持CDI(Contexts and Dependency Injection)和Managed Beans的注解配置,使得依赖注入更为简便;还增加了Faces Flow,用于构建更复杂的导航结构。学习JSF2,意味着能够利用这些新功能提升应用的性能和可维护性。 ...

    jsf-api-2.0.3.jar.zip_jsf api_jsf jar包_jsf-api-2.0.3.jar_jsf-api

    3. **Managed Beans**:作为业务逻辑的容器,提供了一种简化的方法来管理bean对象,包括依赖注入(DI)和生命周期管理。 4. **Faces Flow**:提供了一种新的方式来组织和导航复杂的UI流程,使得多个视图之间的转换...

    开发JSF所需要的jar包

    CDI(如`javax.enterprise.cdi-api.jar`和`weld-servlet.jar`)是Java EE中的依赖注入框架,用于管理对象的生命周期和依赖关系。JSF可以与CDI集成,使组件的创建和管理更加灵活。 8. **JSTL (JavaServer Pages ...

    用jsf做的登录注册的组件

    10. **依赖注入**:JSF支持CDI(Contexts and Dependency Injection),可以方便地注入其他服务或资源,如数据库连接池、邮件服务等。 这个压缩包可能包含了一个完整的JSF登录注册组件示例,包括了HTML模板、Java...

    jsf-spring-4.0.3

    2. **依赖注入**:通过Spring的依赖注入,JSF的Managed Beans可以直接引用由Spring管理的Bean,增强代码的可测试性和解耦性。 3. **FacesContext与ApplicationContext**:在JSF中获取Spring的ApplicationContext,以...

    jsf-api.jar

    3. **Managed Beans**: Managed Beans是JSF中业务逻辑的载体,它们可以注入到JSF组件中,处理用户的请求并更新模型数据。 4. **EL(Expression Language)**: EL是一种简洁的表达式语言,用于在JSF视图中访问和操作...

    IDEA创建JSF项目所需jar包.zip

    在JavaServer Faces (JSF) 开发环境中,IntelliJ IDEA (IDEA) 是一个流行的集成开发环境。这个“IDEA创建JSF项目所需jar包.zip”文件包含了两个关键的库文件,它们对于在IDEA中成功搭建JSF项目至关重要。下面我们将...

    seam+jsf+richfaces+ajax4jsf 电子书

    例如,Seam可以自动处理RichFaces和Ajax4jsf组件之间的通信,提供统一的依赖注入和事务管理。通过Seam,开发者可以更专注于业务逻辑,而不是底层技术细节。 在学习这些技术时,电子书中可能会涵盖以下主题: - ...

    facelet.pdf

    特别是其视图技术——Facelets,更是为JSF注入了新的活力。 #### 三、JSF视图技术:JSP与Facelets ##### 3.1 JSP作为JSF的默认视图技术 - **优点**:作为J2EE标准的一部分,JSP提供了稳定且成熟的视图解决方案。 - ...

    jsf.jar包 有关jsf的jar包都在包中

    Managed Beans 是JSF中预定义的一种Java类,它们的实例由JSF容器管理,容器负责创建、初始化和销毁这些对象,同时负责将其他组件注入到Managed Bean中。这种方式使得开发者无需手动创建和管理对象,降低了代码的复杂...

    jsf需要全部包

    - JSF支持依赖注入(Dependency Injection, DI),可以方便地在Bean之间共享对象。 - CDI(Contexts and Dependency Injection for the Java EE Platform)是Java EE中的一种依赖注入规范,可以与JSF结合使用。 6...

    JSF教程(有关jsf实例的操作步骤)

    Beans可以通过注解或XML配置来声明,并可以注入到JSF组件中,实现数据的双向绑定。 **6. EL(Expression Language)** EL是一种简洁的语言,用于在JSF中访问和操作Managed Beans的属性。它允许在视图层直接引用模型...

    JSF 和 Spring 集成

    JSF主要用于构建用户界面,提供了一套组件库和MVC架构,而Spring则是一个全面的后端框架,包含了依赖注入、AOP、事务管理等功能。将JSF与Spring集成可以让开发者充分利用两者的优点,实现更高效、灵活的应用开发。 ...

    jsf+spring整合

    JSF主要用于构建用户界面,而Spring则提供了全面的企业级应用框架服务,包括依赖注入、事务管理、安全性和AOP(面向切面编程)。将两者整合可以利用它们各自的优势,创建出高效、模块化的Web应用程序。 **JSF简介**...

    JSF 核心编程与入门

    JSF 2.0之后,可以与CDI(Contexts and Dependency Injection)框架无缝集成,使依赖注入更加灵活,提高了代码的可测试性和可维护性。 **11. JSF的错误处理和验证** JSF提供了一套内置的验证机制,可以在不同生命...

    图书管理系统-BookM_JSF_Hibernate_Spring

    在本系统中,Spring主要起到了依赖注入(DI)和面向切面编程(AOP)的作用。DI帮助解耦组件,使得系统更易于测试和维护。AOP则用于实现如事务管理等横切关注点,提高代码的可复用性和可维护性。此外,Spring还提供了...

    jsf+spring 实例

    JSF是一个用于构建用户界面的MVC(Model-View-Controller)框架,而Spring则是一个全面的后端框架,提供依赖注入、事务管理、安全控制等众多功能。将这两者结合起来,可以实现从前端到后端的完整解决方案。 **1. ...

    JSF ppt课件 java serve face

    10. **依赖注入**:JSF 2.0集成CDI(Contexts and Dependency Injection),使得依赖注入更加方便,提高了代码的可测试性和可维护性。 这个“JSF ppt课件”很可能包含了这些内容的讲解,通过学习,你可以理解JSF的...

    介绍JSF框架的PPT

    - **POJO依赖注入**:JSF支持POJO依赖注入,即控制反转,这意味着开发者可以更轻松地管理组件间的依赖关系。 - **客户端独立性**:JSF框架的设计考虑到了跨浏览器兼容性,因此开发的应用程序可以在不同的客户端上...

    jsf框架入门视频资料

    例如,Spring可以提供更灵活的依赖注入,而Hibernate则负责数据库操作。 通过观看"jsf框架入门视频",学习者将能够深入理解JSF的基本概念、组件使用、生命周期、EL表达式以及与Java EE其他技术的协同工作方式。这些...

Global site tag (gtag.js) - Google Analytics