`
zhiblin
  • 浏览: 57771 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

jsf与spring 整合

阅读更多

JSF与Spring整合的原理是获得彼此的上下文引用,以此进一步获得各自管理的bean,这是可能的,因为两者是Web应用框架都遵循Servlet规范,为二者整合提供了可能和基础。

在Spring中ApplicationContext是相当重要的类,对于web应用,它还包装了
Javax.servlet.ServletContext, 为web应用提供了所有可以利用的数据,
包括可管理bean,Faces中通过FacesContext类可以获得所有可以利用的资源,
同样包括JSF的可管理支持bean,它们都围绕着ServletContext提供了自己的
门面,通过各自的门面在Servlet容器的世界里彼此相通。

这边介绍两种整合的方法

一、利用自定义的类

编写一个实用类SpringFacesUtil

 

package com.ceun.util;
 
import org.springFramework.context.ApplicationContext;
import org.springframework.web.context.support.WebApplicationContextUtils;
import javax.faces.context.FacesContext;
import javax.servlet.ServletContext;
public final class 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);
    }
}
经过编译后,就可以通过使用这个实用类的finsBean方法来,获得Spring管理的bean了

提示:运行前,确认你已经在应用配置文件(web.xml)中加入如下代码,并拷贝相应的类库存到应用WEB-INF/lib

目录

...
<context-param>
        <param-name>javax.faces.CONFIG_FILES</param-name>
        <param-value>/WEB-INF/faces-config.xml</param-value>
    </context-param>
<!--使用listenner,加载Spring 当然也可用Servlet方式-(具体见Spring相关配置)-->
<listener>
        <listener-class>
            org.springframework.web.context.ContextLoaderListener
        </listener-class>
    </listener>
<servlet>
        <servlet-name>Faces Servlet</servlet-name>
        <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
        <load-on-startup>0</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>Faces Servlet</servlet-name>
        <url-pattern>*.faces</url-pattern>
    </servlet-mapping>
...

 

二、使用第三方框架

这边介绍一种使用jsf-spring框架整合JSF与Spring的方法

1.首先从http://jsf-spring.sourceforge.net/下载jsf-spring类库

因为此例假设整合JSF1.1 Spring 1.2

所以下载jsf-spring-3.0.0.zip,下载解压后拷贝dist目录下的文件到你的应用WEB-INF/lib目录下

2.修改应用配置文件(web.xml)

在刚才添加的加载Spring的listener后面。再添加一个listener

<!--这个一定要插在Spring listener之后-->
<listener>
        <listener-class>
            de.mindmatters.faces.spring.context.ContextLoaderListener
        </listener-class>
    </listener>
3.假设你有个由JSF管理userBean bean,你现在想把userBean中的其中一个属性如userDAO,改成从Spring bean

中获得

那么你可以在faces-config.xml中作如下修改

<managed-bean>
        <managed-bean-name>userBean</managed-bean-name>
        <managed-bean-class>
            com.ceun.bean.UserBean        </managed-bean-class>
        <managed-bean-scope>request</managed-bean-scope>
        <managed-property>
            <property-name>userDAO</property-name>
<!--通过#{userDAO}引用Spring管理的userDAO bean-->
            <value>#{userDAO}</value>
        </managed-property>
    </managed-bean>
4.重启服务器,在你的应用中使用Spring管理的bean

分享到:
评论
2 楼 zhiblin 2009-03-09  
spring 的那个版本
1 楼 seekgirl 2009-03-09  
spring本身就提供类来整合

<application>
        <variable-resolver>
            org.springframework.web.jsf.DelegatingVariableResolver
        </variable-resolver>
    </application>

相关推荐

    jsf+spring整合

    **JSF与Spring整合的好处** 1. **更好的组件管理**:Spring的依赖注入可以帮助管理JSF中的组件,使得组件的创建和配置更加灵活。 2. **更强大的事务处理**:Spring的事务管理可以与JSF的业务逻辑紧密结合,确保数据...

    jsf+spring 实例

    JSF与Spring整合** JSF和Spring的整合主要是通过Spring Web Flow(SWF)或者SpringFaces模块来实现。SWF为JSF提供了更强大的流程控制能力,而SpringFaces则是Spring社区为了更好地集成JSF而创建的项目。 **4. 整合...

    jsf-spring-4.0.3

    标题"jsf-spring-4.0.3"表明这是一个关于JSF与Spring整合的特定版本,4.0.3可能指的是Spring框架的一个版本,这通常意味着该资源包含了使得这两个框架能够协同工作的配置和示例代码。 在描述中提到的"jsf他spring...

    jSF2.0与Spring整合实例+教程

    5. **JSF 和 Spring Security 整合**:Spring Security可以提供认证和授权功能,与JSF结合,实现安全的Web应用。 整合教程通常会涵盖这些步骤,指导开发者如何设置环境、配置Spring和JSF、创建并集成Managed Beans...

    JSF+spring+hibernate整合实例

    在JSF与Spring整合的情况下,JSF的Managed Bean可以直接使用由Spring管理的Bean。当JSF在自己的上下文中找不到所需的Bean实例时,它会去Spring的ApplicationContext中查找。这种方式允许我们利用Spring的强大功能,...

    JSF与Spring完美结合

    通过这个集成示例,开发者可以学习到如何在实际项目中整合JSF和Spring,以及如何在Tomcat服务器上部署和运行。这种结合使得开发人员能够利用JSF的强大UI功能和Spring的丰富企业服务,创建出高效、可维护的Web应用...

    JSF+Spring+Hibernate整合图文教程详解

    **JSF与Spring的整合**主要关注如何使JSF管理的页面后台JavaBean能够访问到由Spring管理的业务逻辑层中的JavaBean,同时保持页面及其背后的控制逻辑仍然由JSF管理。 为了实现JSF与Spring的整合,我们需要让两者都...

    jsf2+spring sample

    【JSF2与Spring整合详解】 JavaServer Faces 2(简称JSF2)是Java平台上的一个企业级的用户界面框架,它为构建基于Web的应用程序提供了组件化、事件驱动的模型。而Spring框架则是Java后端开发的核心框架,以其依赖...

    JSF+Spring+Hibernate(框架整合)详细过程

    2. **JSF与Spring的整合**:为了使JSF能够使用Spring的Bean,我们需要添加`spring-jsf`库,并配置JSF的` faces-config.xml`,将Spring作为JSF的Managed Bean提供者。这样,JSF可以通过Spring的ApplicationContext...

    jsf+spring

    3. **JSF与Spring整合** - **依赖注入**:整合JSF和Spring,可以使用Spring的DI来管理JSF的managed beans,从而实现更灵活的配置和更好的解耦。 - **FacesContext与ApplicationContext**:在JSF中,FacesContext...

    jsf+spring2.5+jpa(hibernate)的jar包

    这是jsf+spring2.5+jpa(hibernate)的jar包,很多人为了jsj环境而配置半天,在此提供jar包共享。注:除了ajax4jsf和tomahawk-1.1.3.jar,因为csdn只让我上传20mb,大家自己可以下一下自己试试。

    jsf-spring-hibernate整合

    本项目"jsf-spring-hibernate整合"旨在将这三大技术进行无缝集成,采用基于注解的方式来简化配置,提高开发效率。 JSF(JavaServer Faces)是Java平台上的一个标准组件模型,用于构建富互联网应用程序(RIA)。它...

    JSF基于EJB Hibernate Spring整合开发与项目

    ### JSF基于EJB Hibernate Spring整合开发与项目 #### 一、JSF基础知识 ##### 1.1 了解JSF JavaServer Faces (JSF) 是一个用于构建基于Web的应用程序的标准Java EE技术。它提供了丰富的组件库以及一套声明式的...

    整合jsf hibernate spring实例

    部门人员一对多的CRUD操作 hibernate: 管理实体...spring:数据源配置与获得session IOC依赖注入 和 AOP 事务管理 jsf : backing bean的操作 jsf 标签应用 jsf 信息国际化以资源绑定 jsf 表单验证 jsf 导航设定

    JSF+Spring+Hibernate的实例讲解.doc

    在 JCatalog 示例中,Spring 可能用于实现业务服务接口,提供对 Hibernate DAO 的封装,而 JSF 的 Managed Beans 作为视图与控制器的结合,负责处理用户请求并调用 Spring 服务。此外,安全控制也应纳入设计考虑,如...

    JSf-Spring-Hibernate整合开发案例-教程+Demo

    JSf-Spring-Hibernate整合开发案例-教程+Demo 原名应该是Put_JSF_ToWork 里面有一个案例,经典的分层模式。 我这个文件是包括源代码以及那份PDF的,因为是老外的东西怕有一天突然下载不了了 所以留一份...

    jsf+hibernate+spring集成案例

    Spring还提供了与其它框架(如Hibernate)的整合支持,简化了多层架构的集成。 在这个"jsf+hibernate+spring集成案例"中,我们将看到: 1. **配置集成**:首先,我们需要在Spring配置文件中定义数据源、...

Global site tag (gtag.js) - Google Analytics