Spring JSF集成

欢迎来到Spring JSF集成教程。JSF是一个基于组件的框架,非常注重用户界面。而Spring框架核心原则是依赖注入。因此,将JSF与Spring框架集成是有意义的,其中JSF将用于用户界面,而Spring框架将用于后端服务器端业务逻辑。

Spring JSF

Springs可以与JSF集成DelegatingVariableResolver。现在让我们看看如何将Spring JSF框架与一个示例集成。

  1. 在pom.xml中添加以下spring依赖项以及标准JSF依赖项。Spring核心和Web依赖关系是基于MVC的Web应用程序的最低要求。

    
    <dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>4.1.4.RELEASE</version>
    </dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-web</artifactId><version>4.1.4.RELEASE</version>
    </dependency><dependency><groupId>javax.inject</groupId><artifactId>javax.inject</artifactId><version>1</version>
    </dependency>
    
  2. 在文件中添加DelegatingVariableResolverfaces-config.xml如下所示。这el-resolver是委托变量解析​​器。
    
    <application><el-resolver>org.springframework.web.jsf.el.SpringBeanFacesELResolver</el-resolver>
    </application>
    

    提到的el-resolver SpringBeanFacesELResolverJSF前端值连接到Spring后端服务层。

  3. 进行以下输入web.xml以添加spring框架提供的侦听器;
    
    <listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
    <listener><listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
    </listener>
    

    监听器类将spring框架入口点绑定到servlet上下文。

我们的配置文件准备就绪,让我们看一下Spring JSF示例项目的java类。

  1. 创建托管bean类CarBean.java

    
    package com.journaldev.jsfspring;import java.util.List;
    import javax.faces.bean.ManagedBean;
    import javax.faces.bean.SessionScoped;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Component;@Component
    @ManagedBean
    @SessionScoped
    public class CarBean {@AutowiredCarDao carDao;public void setCarDao(CarDao carDao) {this.carDao = carDao;}public List<String> fetchCarDetails() {return carDao.getCarDetails();}}
    
  2. 创建接口CarDao.java
    
    package com.journaldev.jsfspring;import java.util.List;public interface CarDao {public List<String> getCarDetails();}
    
  3. 创建实现类CarImpl.java
    
    package com.journaldev.jsfspring;import java.util.ArrayList;
    import java.util.List;
    import org.springframework.stereotype.Service;@Service
    public class CarImpl implements CarDao {@Overridepublic List<String> getCarDetails() {List<String> cars = new ArrayList<String>();cars.add(0, "Santro");cars.add(1, "Zen");cars.add(2, "Alto");cars.add(3, "Qualis");cars.add(4, "Innova");for (String c : cars) {System.out.println(c);}return cars;}}
    

    请注意,使用Spring注释进行服务和连线是通过@Autowired注释完成的。我们也可以使用Spring Bean配置文件来完成这些,我们将在后面的部分中看到。

让我们在JSF中创建视图页面。

  1. 创建JSF页面car.xhtml

    
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml"xmlns:h="http://java.sun.com/jsf/html"xmlns:ui="http://java.sun.com/jsf/facelets">
    <h:head><title>JSF Spring Integration</title>
    </h:head>
    <h:body><h2>Car Names List</h2><ul><ui:repeat var="cars" value="#{carBean.fetchCarDetails()}"><li><h3>#{cars}</h3></li></ui:repeat></ul>
    </h:body>
    </html>
    
  2. 添加基本​​软件包详细信息applicationContext.xml以扫描服务类。
    
    <beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-3.1.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context-3.1.xsd"><context:component-scan base-package="com.journaldev.jsfspring" /><!-- If you prefer XML based Dependency Injectionremove annotation from class and uncomment below configuration -->   <!-- <bean class="com.journaldev.jsfspring.CarImpl" id="carDAO" /><bean class="com.journaldev.jsfspring.CarBean" id="carBean"><property name="carDao" ref="carDAO"></property></bean>--></beans>
    

    注意上面注释的代码,如果您更喜欢基于XML的配置,那么您可以从java类中删除Spring注释并取消注释。你会得到相同的结果。

Spring JSF示例测试

我们的应用程序已准备就绪,只需将其部署在您最喜欢的servlet容器中并运行它。你应该低于输出响应。

下图显示了Eclipse中的最终项目结构。

您可以从下面的链接下载项目并使用它来了解更多信息。

下载Spring JSF Integration示例项目

转载来源:https://www.journaldev.com/7112/spring-jsf-integration

Spring JSF集成相关推荐

  1. Spring JSF集成教程

    Spring JSF集成教程 欢迎来到Spring JSF集成教程.JSF是一个基于组件的框架,非常注重用户界面.而Spring框架核心原则是依赖注入.因此,将JSF与Spring框架集成是有意义的, ...

  2. jsf集成spring_Spring JSF集成

    jsf集成spring Welcome to Spring JSF integration tutorial. JSF is a component based framework with grea ...

  3. jsf集成spring_JSF 2,PrimeFaces 3,Spring 3和Hibernate 4集成项目

    jsf集成spring 本文展示了如何集成JSF2,PrimeFaces3,Spring3和Hibernate4技术. 它为Java开发人员提供了一个通用的项目模板. 另外,如果Spring不用于业务 ...

  4. Spring和JSF集成:国际化和本地化

    如果您正在开发针对多种语言的JSF应用程序,那么您可能很熟悉<f:loadBundle>标记. 即使您的应用程序不支持使用消息包的国际化仍然是一个好主意. 在<f:loadBundl ...

  5. Spring和JSF集成:MVC螺母和螺栓

    过去,我曾尝试将JSF与Spring MVC集成在一起,尽管我的第一次尝试成功了,但这远非理想. 这次,我决定做出一些关键决定来帮助我集中精力: 向后兼容. 支持JSF 1.2涉及的工作太多,而Spr ...

  6. JSF Spring Hibernate集成示例教程

    JSF Spring Hibernate集成示例教程 欢迎使用JSF Spring Hibernate Integration示例教程.在上一篇教程中,我们了解了如何将JSF和Spring框架集成在一 ...

  7. jsf集成spring_JSF Spring Hibernate集成示例教程

    jsf集成spring Welcome to JSF Spring Hibernate Integration example tutorial. In our last tutorial, we s ...

  8. jsf集成spring_JSF – PrimeFaces和Hibernate集成项目

    jsf集成spring 本文介绍了如何使用JSF,PrimeFaces和Hibernate开发项目. 下面是一个示例应用程序: 二手技术: JDK 1.6.0_21 Maven的3.0.2 JSF 2 ...

  9. jsf集成spring_Spring和JSF集成:国际化和本地化

    jsf集成spring 如果您正在开发针对多种语言的JSF应用程序,那么您可能很熟悉<f:loadBundle>标记. 即使您的应用程序不支持使用消息捆绑包进行国际化仍然是一个好主意. 在 ...

最新文章

  1. 2022-2028年中国电子陶瓷行业深度调研及投资前景预测报告
  2. 机器学习和计算机视觉的前20个图像数据集
  3. 甲亢php,甲亢还是甲低,真亢还是真低?
  4. linux 共享内存陷井,linux共享内存应用与陷阱
  5. Html学习总结(2)——Html页面head标签元素的意义和应用场景
  6. 《英雄联盟》出现大面积闪退;两名 95 后大学生用脑电波写“福”字;Windows蓝屏为什么是蓝底白字? | 极客头条...
  7. Windows XP操作系统中的禁忌
  8. HTTP2.0,HTTP1.1,HTTP1.0三者在通性性能上的优化方法
  9. 30种应该知道的sql调优方法
  10. 【转载】究竟什么是POJO?
  11. 大数据分析过程中包含哪些技术
  12. java坦克大战图片素材包_坦克大战图片素材
  13. django oscar_赢得奥斯卡奖之后会发生什么
  14. 【产品经理】003-梁宁·产品思维30讲-机会判断(未完待续)
  15. Ruby(了解第二天)
  16. 《丑奴儿书博山道中壁》
  17. 【计算机科学速成课】[40集全/文字版] - 17.集成电路摩尔定律
  18. oracle命令导入expdp,oracle的导入导出命令:expdp和impdp
  19. ExtJs 第二章,Ext.form.Basic表单操作
  20. 行列式、逆矩阵、列空间和零空间(3Blue1Brown学习笔记)

热门文章

  1. 什么是响应式Web设计?怎样进行?
  2. 使用.htaccess文件为站点文件夹设置密码保护
  3. PHP中的CURL函数库
  4. Web设计与开发终极资源大全
  5. LeetCode 283. Move Zeroes
  6. 三维点云网络——PointNet论文解读
  7. 【数字图像处理】求图像rice.png中米粒个数
  8. 类与对象的关系 java 1615134802
  9. 访问修饰符 c# 1613703072
  10. 9206-吃货联盟 需求分析