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;
}
分享到:
相关推荐
支持CDI(Contexts and Dependency Injection)和Managed Beans的注解配置,使得依赖注入更为简便;还增加了Faces Flow,用于构建更复杂的导航结构。学习JSF2,意味着能够利用这些新功能提升应用的性能和可维护性。 ...
3. **Managed Beans**:作为业务逻辑的容器,提供了一种简化的方法来管理bean对象,包括依赖注入(DI)和生命周期管理。 4. **Faces Flow**:提供了一种新的方式来组织和导航复杂的UI流程,使得多个视图之间的转换...
CDI(如`javax.enterprise.cdi-api.jar`和`weld-servlet.jar`)是Java EE中的依赖注入框架,用于管理对象的生命周期和依赖关系。JSF可以与CDI集成,使组件的创建和管理更加灵活。 8. **JSTL (JavaServer Pages ...
10. **依赖注入**:JSF支持CDI(Contexts and Dependency Injection),可以方便地注入其他服务或资源,如数据库连接池、邮件服务等。 这个压缩包可能包含了一个完整的JSF登录注册组件示例,包括了HTML模板、Java...
2. **依赖注入**:通过Spring的依赖注入,JSF的Managed Beans可以直接引用由Spring管理的Bean,增强代码的可测试性和解耦性。 3. **FacesContext与ApplicationContext**:在JSF中获取Spring的ApplicationContext,以...
3. **Managed Beans**: Managed Beans是JSF中业务逻辑的载体,它们可以注入到JSF组件中,处理用户的请求并更新模型数据。 4. **EL(Expression Language)**: EL是一种简洁的表达式语言,用于在JSF视图中访问和操作...
在JavaServer Faces (JSF) 开发环境中,IntelliJ IDEA (IDEA) 是一个流行的集成开发环境。这个“IDEA创建JSF项目所需jar包.zip”文件包含了两个关键的库文件,它们对于在IDEA中成功搭建JSF项目至关重要。下面我们将...
例如,Seam可以自动处理RichFaces和Ajax4jsf组件之间的通信,提供统一的依赖注入和事务管理。通过Seam,开发者可以更专注于业务逻辑,而不是底层技术细节。 在学习这些技术时,电子书中可能会涵盖以下主题: - ...
特别是其视图技术——Facelets,更是为JSF注入了新的活力。 #### 三、JSF视图技术:JSP与Facelets ##### 3.1 JSP作为JSF的默认视图技术 - **优点**:作为J2EE标准的一部分,JSP提供了稳定且成熟的视图解决方案。 - ...
Managed Beans 是JSF中预定义的一种Java类,它们的实例由JSF容器管理,容器负责创建、初始化和销毁这些对象,同时负责将其他组件注入到Managed Bean中。这种方式使得开发者无需手动创建和管理对象,降低了代码的复杂...
- JSF支持依赖注入(Dependency Injection, DI),可以方便地在Bean之间共享对象。 - CDI(Contexts and Dependency Injection for the Java EE Platform)是Java EE中的一种依赖注入规范,可以与JSF结合使用。 6...
Beans可以通过注解或XML配置来声明,并可以注入到JSF组件中,实现数据的双向绑定。 **6. EL(Expression Language)** EL是一种简洁的语言,用于在JSF中访问和操作Managed Beans的属性。它允许在视图层直接引用模型...
JSF主要用于构建用户界面,提供了一套组件库和MVC架构,而Spring则是一个全面的后端框架,包含了依赖注入、AOP、事务管理等功能。将JSF与Spring集成可以让开发者充分利用两者的优点,实现更高效、灵活的应用开发。 ...
JSF主要用于构建用户界面,而Spring则提供了全面的企业级应用框架服务,包括依赖注入、事务管理、安全性和AOP(面向切面编程)。将两者整合可以利用它们各自的优势,创建出高效、模块化的Web应用程序。 **JSF简介**...
JSF 2.0之后,可以与CDI(Contexts and Dependency Injection)框架无缝集成,使依赖注入更加灵活,提高了代码的可测试性和可维护性。 **11. JSF的错误处理和验证** JSF提供了一套内置的验证机制,可以在不同生命...
在本系统中,Spring主要起到了依赖注入(DI)和面向切面编程(AOP)的作用。DI帮助解耦组件,使得系统更易于测试和维护。AOP则用于实现如事务管理等横切关注点,提高代码的可复用性和可维护性。此外,Spring还提供了...
JSF是一个用于构建用户界面的MVC(Model-View-Controller)框架,而Spring则是一个全面的后端框架,提供依赖注入、事务管理、安全控制等众多功能。将这两者结合起来,可以实现从前端到后端的完整解决方案。 **1. ...
10. **依赖注入**:JSF 2.0集成CDI(Contexts and Dependency Injection),使得依赖注入更加方便,提高了代码的可测试性和可维护性。 这个“JSF ppt课件”很可能包含了这些内容的讲解,通过学习,你可以理解JSF的...
- **POJO依赖注入**:JSF支持POJO依赖注入,即控制反转,这意味着开发者可以更轻松地管理组件间的依赖关系。 - **客户端独立性**:JSF框架的设计考虑到了跨浏览器兼容性,因此开发的应用程序可以在不同的客户端上...
例如,Spring可以提供更灵活的依赖注入,而Hibernate则负责数据库操作。 通过观看"jsf框架入门视频",学习者将能够深入理解JSF的基本概念、组件使用、生命周期、EL表达式以及与Java EE其他技术的协同工作方式。这些...