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

原创
2015/02/06 11:29
阅读数 1.7K

前言

由于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)支持

展开阅读全文
加载中
点击加入讨论🔥(2) 发布并加入讨论🔥
打赏
2 评论
1 收藏
0
分享
返回顶部
顶部