这个工具类提供在JSF世界里查找Spring管理的bean.也实现在Spring中查找JSF组件的方法.(http://tech.it168.com/jd/2008-01-04/200801032352532.shtml)
package com.skysoft.rbac.dao;
import org.springframework.context.ApplicationContext;
import org.springframework.web.context.support.WebApplicationContextUtils;
import javax.faces.context.FacesContext;
import javax.servlet.ServletContext;
import javax.faces.el.ValueBinding;
import javax.faces.FactoryFinder;
import javax.faces.application.Application;
import javax.faces.application.ApplicationFactory;
public final class SpringFacesUtil {
public SpringFacesUtil() {
}
/**
* 从Spring中查找bean.
* @param beanname String
* @return Object
*/
public static Object findBean(String beanname) {
ServletContext context = (ServletContext) FacesContext.getCurrentInstance().
getExternalContext().getContext();
ApplicationContext appctx = WebApplicationContextUtils.
getRequiredWebApplicationContext(context);
return appctx.getBean(beanname);
}
/**
* 从JSF中查找bean.
* @param beanname String
* @return Object
*/
public static Object lookupBean(String beanname) {
Object obj = getValueBinding(getJsfEl(beanname)).getValue(FacesContext.
getCurrentInstance());
return obj;
}
private static ValueBinding getValueBinding(String el) {
return getApplication().createValueBinding(el);
}
private static Application getApplication() {
ApplicationFactory appFactory = (ApplicationFactory) FactoryFinder.
getFactory(FactoryFinder.APPLICATION_FACTORY);
//FactoryFinder.FACES_CONTEXT_FACTORY
//FactoryFinder.RENDER_KIT_FACTORY
return appFactory.getApplication();
}
private static String getJsfEl(String value) {
return "#{" + value + "}";
}
}
分享到:
相关推荐
- 这个类的主要功能是在 JSF 世界中查找 Spring 管理的 bean,同时也实现了在 Spring 中查找 JSF 组件的方法。 - `findBean(String beanName)` 方法用于从 Spring 中查找 bean,该方法通过当前 `FacesContext` ...
2. ** faces-config.xml 配置**:在JSF配置文件中声明Spring Bean的查找机制,通常使用`<managed-bean>`的`class`属性引用Spring Bean。 3. **Spring-WSF Bridge**:如`SpringFaces`库,用于协调JSF和Spring之间的...
当JSF在自己的上下文中找不到所需的Bean实例时,它会去Spring的ApplicationContext中查找。这种方式允许我们利用Spring的强大功能,如事务管理、数据访问等,同时还能利用JSF的视图层处理能力。 在提供的实例中,...
- 在JSF页面中使用Spring管理的bean,可以通过`<f:managedProperty>`标签或EL表达式引用bean。 - 如果需要,配置Spring MVC和JSF的集成,例如设置DispatcherServlet和FacesServlet的映射。 5. **示例代码** - ...
4. Spring框架的IoC容器、AOP的实现、事务管理以及与JSF和EJB的集成。 5. 数据库连接池的配置和使用,例如C3P0或HikariCP。 6. MVC设计模式在JSF和Spring中的应用。 7. JPA(Java Persistence API)与Hibernate的...
- **Bean生命周期管理**:Spring框架提供了对Bean生命周期的精细控制,如初始化方法、销毁方法等。 - **依赖查找**:Spring支持通过ID或类型等方式查找依赖对象。 #### 四、配置管理 - **XML配置**:Spring最早支持...
Bean Factory是Spring的最基础的容器,负责对象的创建、配置和管理。ApplicationContext不仅继承了Bean Factory的功能,还增加了处理消息资源、应用事件以及AOP(面向切面编程)支持。 其次,Spring的AOP模块提供了...
**JSF(JavaServer Faces)**是Java平台上用于构建用户界面的一种Web开发框架,它简化了创建、维护和管理Web应用程序的过程。JSF的核心概念是组件模型,它将UI元素视为可重用的组件,允许开发者通过声明式编程来处理...
除此之外,Spring 2.0还强化了与其它开源框架的整合,如JSF、Struts、EJB等,以及对Spring Web Flow的支持,这是一个用于构建复杂Web交互流程的库。 总之,Spring 2.0中文API CHM文件是学习和使用Spring 2.0框架的...
`SpringBeanFacesELResolver`使得JSF表达式语言(EL)能够查找并注入Spring容器中的bean。 关于Hibernate的配置,通常是在Spring的配置文件中完成的,如`servlet-context.xml`。这里会定义数据源、SessionFactory...
例如,使用`@Autowired`进行自动装配,`@Qualifier`指定特定的bean,以及`@Resource`注解来查找JNDI资源。这些注解大大提高了代码的可读性和可维护性。 Spring3也包含了对数据访问的强大支持,包括JDBC模板、...
**JspServletBean 示例详解** ...通过熟练掌握这一技术,开发者能够更好地理解和应用Java EE框架,如Spring MVC或JSF,这些框架在企业级应用中广泛使用。不断实践和学习,你将在Web开发领域更进一步。
在深入学习JSF的过程中,开发者还会遇到更复杂的话题,如组件库(如PrimeFaces)、Ajax支持、异步请求处理以及与Spring、Hibernate等框架的集成。JSF作为一个成熟的框架,为Web应用开发提供了丰富的功能和便利性,是...
2. **Bean容器**:Spring中的Bean容器(ApplicationContext)负责管理对象(称为Bean),提供初始化、配置、装配以及查找Bean的服务。Bean可以通过XML、注解或Java配置类进行定义。 3. **AOP**:Spring的AOP模块...
在传统模式下,对象通常需要自行创建或查找依赖的对象,而在Spring框架中,容器负责管理对象及其依赖,根据配置将所需的服务注入到对象中,减少了硬编码的依赖,提高了代码的灵活性和可测试性。 **2. 面向切面编程...
2. **Spring Boot支持**:可以快速创建和运行Spring Boot项目,提供启动器依赖管理。 3. **Spring Roo集成**:帮助快速生成Maven或Gradle项目结构,自动生成代码。 4. **Git版本控制集成**:方便进行版本控制操作。 ...
Spring Core Container是基础,包含Bean工厂(BeanFactory)和应用上下文(ApplicationContext),它们负责管理对象的生命周期和依赖注入。其他模块则分别提供了针对不同层面的解决方案,如Spring MVC用于构建Web...
BeanFactory是Spring的基础,负责管理bean的创建、初始化、配置和查找。ApplicationContext则扩展了BeanFactory,增加了对国际化、事件传播、资源加载等功能。 3. **数据访问/集成**: Spring支持多种数据访问技术...