import javax.faces.FactoryFinder;
import javax.faces.application.Application;
import javax.faces.application.ApplicationFactory;
import javax.faces.context.FacesContext;
import javax.faces.el.ValueBinding;
import javax.servlet.ServletContext;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;
import org.springframework.web.context.support.WebApplicationContextUtils;
public final class SpringFacesUtil {
public SpringFacesUtil() {
}
/**
* 从Spring中查找bean.
* @param beanName String
* @return Object
*/
public static Object findSpringBeanByName(String beanName) {
ServletContext context = (ServletContext) FacesContext
.getCurrentInstance().getExternalContext().getContext();
ApplicationContext appctx = WebApplicationContextUtils
.getRequiredWebApplicationContext(context);
return appctx.getBean(beanName);
}
/**
* 由spring的xml配置文件位置和bean的名字取得bean
* @param xmlPath spring配置文件位置
* @param beanName 要取得bean的名字
* @return
*/
public static Object findSpringBeanByPath(String xmlPath,String beanName){
ApplicationContext ctx =new FileSystemXmlApplicationContext(xmlPath);
return ctx.getBean(beanName);
}
/**
* 从JSF中查找bean.
* @param beanname String
* @return Object
*/
@SuppressWarnings("deprecation")
public static Object lookupJsfBean(String beanname) {
Object obj = getValueBinding(getJsfEl(beanname)).getValue(
FacesContext.getCurrentInstance());
return obj;
}
@SuppressWarnings("deprecation")
private static ValueBinding getValueBinding(String el) {
return getApplication().createValueBinding(el);
}
private static Application getApplication() {
ApplicationFactory appFactory = (ApplicationFactory) FactoryFinder
.getFactory(FactoryFinder.APPLICATION_FACTORY);
return appFactory.getApplication();
}
private static String getJsfEl(String value) {
return "#{" + value + "}";
}
}
分享到:
相关推荐
文档中给出了一个名为 `SpringFacesUtil` 的工具类,用于实现 JSF 和 Spring 的集成。下面是对该工具类中的关键方法进行详细解析: - **findBean 方法**:该方法首先通过 `FacesContext` 获取当前的 `...
JSF(JavaServer Faces)和Spring都是在Web开发中广泛使用的框架,它们各自有其独特的优势。JSF主要用于构建用户界面,提供了一套组件库和MVC架构,而Spring则是一个全面的后端框架,包含了依赖注入、AOP、事务管理...
**JSF(JavaServer Faces)和Spring框架的整合** JSF和Spring都是Java开发Web应用程序时常用的技术。JSF是一个用于构建用户界面的MVC(Model-View-Controller)框架,而Spring则是一个全面的后端框架,提供依赖注入...
`commons-beanutils.jar`和`commons-collections.jar`是Apache Commons项目下的两个库,它们提供了许多实用的工具类,用于Bean操作和集合处理,这些在JSF和Spring的开发中都很常见。 `commons-digester-2.0.jar`是...
在IT行业中,JavaScript Faces (JSF) 和 Spring 框架是两个广泛使用的Java Web开发技术。JSF主要用于构建用户界面,而Spring则提供全面的企业级应用支持,包括依赖注入、事务管理、安全控制等。当这两者结合时,可以...
2. **示例代码**:可能有`src/main/java`目录,包含示例的Java类,展示如何在JSF中使用Spring beans。 3. **Web应用结构**:可能有`WEB-INF`目录,包含`web.xml`,这是Servlet容器的部署描述符,可能会配置JSF和...
这是jsf+spring2.5+jpa(hibernate)的jar包,很多人为了jsj环境而配置半天,在此提供jar包共享。注:除了ajax4jsf和tomahawk-1.1.3.jar,因为csdn只让我上传20mb,大家自己可以下一下自己试试。
【标题】"jsf-spring-boot-starter-2.2.6.zip" 是一个基于Java Server Faces (JSF) 和Spring Boot...虽然描述中提到了与Scala相关的工具,但在没有更多信息的情况下,我们主要关注JSF和Spring Boot的集成及其核心概念。
JSF+Spring+Ibatis示例,对学习JAVA企业应用开发有巨大的帮助!
JavaServer Faces (JSF)、Spring Framework 和 Hibernate 是构建现代 Web 应用程序的三个关键技术。JSF 是一种用户界面框架,适用于基于 Model-View-Controller (MVC) 架构的应用程序,提供了丰富的组件库和事件驱动...
JSF(JavaServer Faces)和Spring是两种在Java Web开发中广泛使用的框架。JSF主要用于构建用户界面,而Spring则提供了全面的企业级应用框架服务,包括依赖注入、事务管理、安全性和AOP(面向切面编程)。将两者整合...
1. **配置Spring**:首先,我们需要在Spring配置文件中定义Bean,包括JSF Managed Beans和Hibernate Session Factory。Bean的定义可以是XML配置或基于注解的方式。 2. **JSF与Spring的整合**:为了使JSF能够使用...
JSF (JavaServer Faces)、Spring 和 Hibernate 是 Java 开发中的三大核心技术,常用于构建企业级的 Web 应用程序。它们各自扮演着不同的角色,共同构建了一个强大的后端架构。 1. **JSF(JavaServer Faces)**: ...
在Java世界中,JSF(JavaServer Faces)和Spring框架是两种常见的技术,它们分别用于构建用户界面和处理业务逻辑。JSF是一个用于构建MVC(Model-View-Controller)结构Web应用程序的Java标准,而Spring则是一个全面...
在Java Web开发中,JSF(JavaServer Faces)、Spring和Hibernate是三个常用的技术栈,它们分别负责视图层、业务逻辑层和服务数据持久化层。这个"JSF+Spring+Hibernate小例子"为我们提供了一个整合这三者的基础应用,...
**Ajax、JSF、Spring和Hibernate是四种在Java Web开发中广泛应用的技术,它们共同构建了高效、灵活且功能强大的Web应用程序。** **Ajax(Asynchronous JavaScript and XML)** 是一种在无需重新加载整个网页的情况...
在"JSF第一步--JSF+Spring+Hibernate+AJAX编程实践 试读"这本书中,读者可以期待学习如何设置这些技术的集成环境,创建JSF组件,配置Spring容器,理解Hibernate的映射和查询机制,以及如何在JSF中使用AJAX进行异步...
开发者通常会首先定义业务实体类(用Hibernate的注解或XML配置),然后创建Spring Bean来实现业务逻辑,接着在JSF页面上设计用户界面,通过Managed Beans与Spring Bean交互,最后利用Maven构建和部署应用。...
- 修改`web.xml`文件,添加Spring和JSF的相关配置: - 注册Spring ContextLoaderListener以加载Spring配置文件。 - 配置JSF支持,包括配置文件路径、状态保存方法等。 - 添加Facelets支持,以便使用XHTML格式的...