文档章节

Spring+JSF+JPA(Hibernate)的环境搭建(一)

码上中国博客
 码上中国博客
发布于 2015/02/06 11:29
字数 1276
阅读 1172
收藏 1

前言

由于primefaces在国内使用的并不是太多,因此,国内对jsf做系统、详细的介绍的资料很少,即使有一些资料,也仅仅是对国外资料的简单翻译或者是仅仅讲表面现象(皮毛而已),它们的语句甚至还是错误的,很可能会误导使用者。

相对来说,看国内的那些仅仅是翻译过来的文章或书籍不如直接看国外的官方文档或资料来的实在,在我讲述jsf页面中如何使用js调用后台bean方法之前,先给大家说几个国外的资料。在primefaces官方网站上,你可以搜索到几乎所有你需要的东西,primefaces官网为:http://www.primefaces.org/showcase/index.xhtml 如过觉得自己英语不好的童鞋,可以前往primefaces国内镜像网站查阅资料: http://www.primefaces.cn/ ,只是国内的这个网站正在翻译中,有些东西还不完善;如果有想细致的了解primefaces的朋友,还可以下载primefaces的官方文档,最新的官方文档为5.2,全英文,我在这里给大家提供我下载好的primefaces官方文档:http://pan.baidu.com/s/1mg3i9Ry ,在这个文档里你可以通过他们的示例来组合出来很多有趣的东西。另外我在淘宝上发现了Primefaces官方的JSF框架,官方售价3000RMB,淘宝售价才五元,大家可以前去学习:https://item.taobao.com/item.htm?spm=a1z10.1-c.w4004-12555052969.2.nPXnNz&id=523880497056

引入JPA去取代或者说包装或者说是升级Hibernate是为了符合JAVA EE的规范,达到ORM统一的结果。下次项目用EJB也好、用TOPLINK也好、用ibatis也罢,我们的开发人员代价会很小。在目前很多项目来说,引入此规范,能更好的代码复用,持久层和控制层相当于进一步的解耦合了,你只需要开启项目之前好好地建立领域模型。

那么用JSF取代Struts2或者更早一点的Struts1又是为何!答案依然是,它是规范。是符合某些标准的规范。不是说Struts2不好,这个因项目而定才行。我个人还是比较推崇apache的Struts2的,当然了,apache的JSF实现和JSF组件也是相当地杠杠的!!!!JSF更贴近事件比较多的web前端处理机制。想想我们一般要接收和处理页面的各种事件是用什么:js函数+ajax处理是吧(Flex我没有接触过,不知道它是怎么样的处理前后台交互的)。JSF可以采用事件监听机制,控件(JSF里面叫做控件)被触发了某些时间,直接优雅的和POJO进行了交互,配合ajax4jsf,处理大量的控件的事件是很简洁方便的。下面开始步骤讲述如何搭建Spring+JSF+Hibernate的开发环境。

步骤详情

1.首先利用IDE建立一个Web项目

2.加入相应的jar包

注意:所有的开源框架都是加入jar包的时候最麻烦,尤其加入了Spring,我把所需要的jar包放置在我的百度网盘中,网址为:http://pan.baidu.com/s/1pJyWioF,大家可以前往下载。

3. web项目加入JSF支持

JSF+Spring框架搭建

(1).修改web.xml,加入如下内容

<!--Spring与JSF支持-->
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener>
        </listener-class>
    </listener>
 
    <!--配置JSF-->
    <context-param>
       <param-name>javax.faces.CONFIG_FILES</param-name>
       <param-value>/WEB-INF/faces-config.xml</param-value>
    </context-param>
 
    <!--Spring配置文件地址-->
    <context-param>
       <param-name>contextConfigLocation</param-name>
    <param-value>/WEB-INF/classes/applicationContext.xml</param-value>
</context-param>
<!--客户端管理状态-->
    <context-param>
       <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
       <param-value>client</param-value>
    </context-param>
 
<!—加入facelets 框架支持-->
    <context-param>
       <param-name>facelets.LIBRARIES</param-name>
       <param-value>    /WEB-INF/facelets/tags/arcmind.taglib.xml;/WEB-INF/tomahawk.taglib.xml
       </param-value>
</context-param>
 
    <context-param>
       <description>指定facelets支持的后缀</description>
       <param-name>javax.faces.DEFAULT_SUFFIX</param-name>
       <param-value>.xhtml</param-value>
    </context-param>
 
    <!--JSF的ajax配置 AJAX4JSF-->
    <filter>
       <display-name>Ajax4jsf Filter</display-name>
       <filter-name>ajax4jsf</filter-name>
       <filter-class>org.ajax4jsf.Filter</filter-class>
    </filter>
    <filter-mapping>
       <filter-name>ajax4jsf</filter-name>
       <servlet-name>Faces Servlet</servlet-name>
       <dispatcher>REQUEST</dispatcher>
       <dispatcher>FORWARD</dispatcher>
       <dispatcher>INCLUDE</dispatcher>
</filter-mapping>
 
    <!—JSF支持-->
    <servlet>
       <servlet-name>Faces Servlet</servlet-name>
       <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
       <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
       <servlet-name>Faces Servlet</servlet-name>
       <url-pattern>*.faces</url-pattern>
    </servlet-mapping>
 
<!—组件支持-->
    <filter>
       <description>为正确使用tomahawk组件包而配置</description>
       <filter-name>extensionsFilter</filter-name>
    <filter-class>org.apache.myfaces.webapp.filter.ExtensionsFilter</filter-class>
       <init-param>
           <param-name>uploadMaxFileSize</param-name>
           <param-value>10m</param-value>
       </init-param>
       <init-param>
           <param-name>uploadThresholdSize</param-name>
           <param-value>100</param-value>
       </init-param>
    </filter>
 
    <filter-mapping>
       <filter-name>extensionsFilter</filter-name>
       <url-pattern>*.faces</url-pattern>
    </filter-mapping>
    <filter-mapping>
       <filter-name>extensionsFilter</filter-name>
       <url-pattern>/faces/*</url-pattern>
</filter-mapping>

(2).在WEB-INF下面加入jsf_core.tld、html_basic.tld和tomahawk.taglib.xml文件、新建一个faces-config.xml文件

内容配置如下:

<!--配置facelets-->
    <application>
       <locale-config>
          	 <default-locale>zh_CN</default-locale>
       </locale-config>
       <view-handler>
       		com.sun.facelets.FaceletViewHandler
       </view-handler>
    </application>
 
<!—JSF与Spring集成-->
    <application>
        <variable-resolver>
           org.springframework.web.jsf.DelegatingVariableResolver
    	</variable-resolver>
    </application>

(3).再加入facelets框架的标签支持包

整个环境包大致如下图所示:

上面的配置好了,JSF和Spring就集成起来了。

在下篇文章中我们将演示如何搭建JSP+Spring+JPA(Hibernate)支持

© 著作权归作者所有

共有 人打赏支持
码上中国博客

码上中国博客

粉丝 53
博文 74
码字总数 70310
作品 1
北京
后端工程师
私信 提问
加载中

评论(2)

码上中国博客
码上中国博客

引用来自“MartinBock”的评论

非常的感谢,最近才接触 jsf
如果有能力查阅外文资料,那么jsf对个人来说还是很不错的,因为省去了前端设计这一环节,只需注重后台逻辑即可。
MartinBockZhu
MartinBockZhu
非常的感谢,最近才接触 jsf
Hibernate环境搭建+struts整合

说明:本文档,是和struts2+hibernate的整合示例。 lib下还有struts2的jar包,本示例没有显示。struts2的搭建参考struts2的环境搭建 一下载hibernate的jar包,并将相关jar包导入的项目web-i...

无信不立
2014/08/14
0
0
新手上路之Hibernate:第一个Hibernate例子

一、Hibernate概述 (一)什么是Hibernate? hibernate核心内容是ORM(关系对象模型)。可以将对象自动的生成数据库中的信息,使得开发更加的面向对象。这样作为程序员就可以使用面向对象的思...

Airship
2016/12/12
0
0
杨老师课堂之JavaEE三大框架Hibernate入门第一课

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/kese7952/article/details/80998421 本篇任务 教学导航 CRM(Customer Relationship Management)客户关系管理...

杨校
07/11
0
0
“约瑟夫环”与Hibernate环境搭建排错

上周二打了个约瑟夫环的类,不知道为什么一直运行不成功,字母并没有传入成功。昨天I下午就特意花时间检查错误,查了很久都不知道哪里出错,后来觉得应该是字母插入的问题,就在那个字母循环...

一梦心草
2015/05/13
0
0
hibernate学习笔记02-- eclipse 下 hibernate+mysql 的实现。

hibernate 环境的配置步骤: 加入 hibernate 所需的 jar 包,并将这些 jar 添加到 project 中,如图: hibernate.cfg.xml 的建立。hibernate 的 hibernate.cfg.xml 配置文件默认在 project/...

风中海岸
2015/08/29
0
0

没有更多内容

加载失败,请刷新页面

加载更多

微服务分布式事务实现

https://www.processon.com/view/link/5b2144d7e4b001a14d3d2d30

WALK_MAN
22分钟前
0
0
《大漠烟尘》读书笔记及读后感文章3700字

《大漠烟尘》读书笔记及读后感文章3700字: 在这个浮躁的社会里,你有多久没有好好读完一本书了? 我们总觉得自己和别人不一样,所以当看到别人身上的问题时,很少有“反求诸己”,反思自己。...

原创小博客
57分钟前
1
0
大数据教程(9.5)用MR实现sql中的jion逻辑

上一篇博客讲解了使用jar -jar的方式来运行提交MR程序,以及通过修改YarnRunner的源码来实现MR的windows开发环境提交到集群的方式。本篇博主将分享sql中常见的join操作。 一、需求 订单数据表...

em_aaron
今天
1
0
十万个为什么之什么是resultful规范

起源 越来越多的人开始意识到,网站即软件,而且是一种新型的软件。这种"互联网软件"采用客户端/服务器模式,建立在分布式体系上,通过互联网通信,具有高延时(high latency)、高并发等特点...

尾生
今天
1
0
Terraform配置文件(Terraform configuration)

Terraform配置文件 翻译自Terraform Configuration Terraform用文本文件来描述设备、设置变量。这些文件被称为Terraform配置文件,以.tf结尾。这一部分将讲述Terraform配置文件的加载与格式。...

buddie
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部