jsf集成spring

本文介绍了如何使用JSF,PrimeFaces和Hibernate开发项目。 下面是一个示例应用程序:

二手技术:

JDK 1.6.0_21
Maven的3.0.2
JSF 2.0.3 PrimeFaces 2.2.1 Hibernate3.6.7 MySQL Java连接器5.1.17 MySQL 5.5.8 Apache Tomcat 7.0

第1步:创建用户表

通过执行以下脚本来创建新的USER表:

CREATE TABLE USER (id int(11) NOT NULL,name varchar(45) NOT NULL,surname varchar(45) NOT NULL,PRIMARY KEY (`id`)
);

步骤2:建立已完成的专案

创建一个Maven项目,如下所示。 (可以使用Maven或IDE插件创建)。

步骤3:图书馆

JSF,Hibernate和依赖库添加到Maven的pom.xml中。 这些库将由Maven中央存储库下载。

<!-- JSF library -->
<dependency><groupId>com.sun.faces</groupId><artifactId>jsf-api</artifactId><version>2.0.3</version>
</dependency>
<dependency><groupId>com.sun.faces</groupId><artifactId>jsf-impl</artifactId><version>2.0.3</version>
</dependency>
<dependency><groupId>javax.servlet</groupId><artifactId>jstl</artifactId><version>1.2</version>
</dependency>
<!-- Hibernate library -->
<dependency><groupId>org.hibernate</groupId><artifactId>hibernate-core</artifactId><version>3.6.7.Final</version>
</dependency>
<dependency><groupId>javassist</groupId><artifactId>javassist</artifactId><version>3.12.1.GA</version>
</dependency>
<!-- MySQL Java Connector library -->
<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.17</version>
</dependency>
<!-- Log4j library -->
<dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.16</version>
</dependency>

注意:primefaces-2.2.1.jar也可以通过maven或以下链接下载:

<repository><id>prime-repo</id><name>PrimeFaces Maven Repository</name><url>http://repository.primefaces.org</url><layout>default</layout>
</repository>  <dependency><groupId>org.primefaces</groupId><artifactId>primefaces</artifactId><version>2.2.1</version>
</dependency>

要么

http://www.primefaces.org/downloads.html

第4步:创建受管理的豆类

创建一个新的托管bean类。 使用了可以与UI组件关联的bean。 托管Bean包含属性以及getter和setter方法。 此外,它们还可以涵盖事件处理,导航,验证等方法。

package com.otv;import java.io.Serializable;
import java.util.List;import org.apache.log4j.Logger;
import org.hibernate.Session;
import org.hibernate.Transaction;import com.otv.hbm.User;
import com.otv.util.HibernateUtil;/*** @author onlinetechvision.com* @since 3 Oct 2011* @version 1.0.0**/
public class UserManagedBean implements Serializable{private static final long serialVersionUID = 1L;private static Logger log = Logger.getLogger(UserManagedBean.class);private static final String SUCCESS = 'success';private static final String ERROR   = 'error';private String name;private String surname;private String message;public String getName() {return name;}public void setName(String name) {this.name = name;}public String getSurname() {return surname;}public void setSurname(String surname) {this.surname = surname;}public String getMessage() {StringBuffer strBuff = new StringBuffer();strBuff.append('Name : ').append(this.getName());strBuff.append(', Surname : ').append(this.getSurname());this.setMessage(strBuff.toString());return this.message;}public void setMessage(String message) {this.message = message;} public String save() {String result = null;Session session = HibernateUtil.getSessionFactory().openSession();User user = new User();user.setName(this.getName());user.setSurname(this.getSurname());Transaction tx = null;try {tx = session.beginTransaction();session.save(user);tx.commit();log.debug('New Record : ' + user + ', wasCommitted : ' + tx.wasCommitted());result = SUCCESS;} catch (Exception e) {if (tx != null) {tx.rollback();result = ERROR;e.printStackTrace();}} finally {session.close();}return result;}public List<User> getUsers() {Session session = HibernateUtil.getSessionFactory().openSession();List<User>  userList = session.createCriteria(User.class).list();return userList;}public void reset() {this.setName('');this.setSurname('');}
}

步骤5:建立使用者类别

创建一个新的User类以对User Table建模。

package com.otv.hbm;
/*** @author onlinetechvision.com* @since 3 Oct 2011* @version 1.0.0**/
public class User {private int id;private String name;private String surname;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getSurname() {return surname;}public void setSurname(String surname) {this.surname = surname;} @Overridepublic String toString() {StringBuffer strBuff = new StringBuffer();strBuff.append('id : ').append(id);strBuff.append(', name : ').append(name);strBuff.append(', surname : ').append(surname);return strBuff.toString();}
}

步骤6:建立新生儿类

创建Singleton HibernateUtil类以构建Hibernate SessionFactory对象。

package com.otv.util;import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;/*** @author onlinetechvision.com* @since 3 Oct 2011* @version 1.0.0**/
public class HibernateUtil {private static SessionFactory sessionFactory = null;public static SessionFactory getSessionFactory() {if(sessionFactory == null) {sessionFactory = new Configuration().configure().buildSessionFactory();}return sessionFactory;}public static void setSessionFactory(SessionFactory sessionFactory) {HibernateUtil.sessionFactory = sessionFactory;}}

步骤7:创建index.xhtml

index.xhtml已创建。

<html xmlns='http://www.w3.org/1999/xhtml'xmlns:h='http://java.sun.com/jsf/html'xmlns:f='http://java.sun.com/jsf/core'xmlns:p='http://primefaces.prime.com.tr/ui'>  <h:head><title>Welcome to JSF_PrimeFaces_Hibernate Project</title></h:head><body><h:form><table><tr><td><h:outputLabel for='name' value='Name:' /></td><td><p:inputText id='name' value='#{userMBean.name}'/></td></tr><tr><td><h:outputLabel for='surname' value='Surname:' /></td><td><p:inputText id='surname' value='#{userMBean.surname}'/> </td></tr><tr><td><p:commandButton id='submit' value='Save' action='#{userMBean.save}' ajax='false'/></td><td><p:commandButton id='reset' value='Reset' action='#{userMBean.reset}' ajax='false'/></td></tr></table></h:form>
</body>
</html>

步骤8:建立welcome.xhtml

welcome.xhtml已创建。

<html xmlns='http://www.w3.org/1999/xhtml'xmlns:h='http://java.sun.com/jsf/html'xmlns:f='http://java.sun.com/jsf/core'xmlns:p='http://primefaces.prime.com.tr/ui'><h:head><title>Welcome to JSF_PrimeFaces_Hibernate Project</title>
</h:head>
<body><h:form><h:outputText value='Saved Record is #{userMBean.message}'></h:outputText><p:dataTable id='users' value='#{userMBean.getUsers()}' var='user' style='width: 10%'><p:column><f:facet name='header'><h:outputText value='ID' /></f:facet><h:outputText value='#{user.id}' /></p:column><p:column><f:facet name='header'><h:outputText value='Name' /></f:facet><h:outputText value='#{user.name}' /></p:column><p:column><f:facet name='header'><h:outputText value='Surname' /></f:facet><h:outputText value='#{user.surname}' /></p:column></p:dataTable></h:form>
</body>
</html>

步骤9:创建error.xhtml

error.xhtml已创建。

<html xmlns='http://www.w3.org/1999/xhtml'xmlns:h='http://java.sun.com/jsf/html'xmlns:f='http://java.sun.com/jsf/core'xmlns:p='http://primefaces.prime.com.tr/ui'>  <h:head><title>Welcome to JSF_PrimeFaces_Hibernate Project</title></h:head><body><f:view><h:form><h:outputText value='Transaction Error has occurred!'></h:outputText></h:form></f:view>
</body>
</html>

步骤10:配置faces-config.xml

faces-config.xml的创建如下。 它涵盖了托管Bean的配置以及xhtml页面之间的导航。

<?xml version='1.0' encoding='UTF-8'?>
<faces-configxmlns='http://java.sun.com/xml/ns/javaee'xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'xsi:schemaLocation='http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd'version='2.0'><managed-bean><managed-bean-name>userMBean</managed-bean-name><managed-bean-class>com.otv.UserManagedBean</managed-bean-class><managed-bean-scope>request</managed-bean-scope></managed-bean><navigation-rule><from-view-id>/pages/index.xhtml</from-view-id><navigation-case><from-outcome>success</from-outcome><to-view-id>/pages/welcome.xhtml</to-view-id></navigation-case><navigation-case><from-outcome>error</from-outcome><to-view-id>/pages/error.xhtml</to-view-id></navigation-case></navigation-rule>
</faces-config>

步骤11:更新web.xml

web.xml已更新。

<?xml version='1.0' encoding='UTF-8'?>
<web-app xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'xmlns='http://java.sun.com/xml/ns/javaee'xmlns:web='http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd'xsi:schemaLocation='http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd'id='WebApp_ID'version='2.5'><display-name>OTV_JSF_PrimeFaces_Hibernate</display-name><context-param><param-name>javax.faces.PROJECT_STAGE</param-name><param-value>Development</param-value></context-param><welcome-file-list><welcome-file>/pages/index.xhtml</welcome-file></welcome-file-list><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><servlet-mapping><servlet-name>Faces Servlet</servlet-name><url-pattern>*.jsf</url-pattern></servlet-mapping><servlet-mapping><servlet-name>Faces Servlet</servlet-name><url-pattern>*.faces</url-pattern></servlet-mapping><servlet-mapping><servlet-name>Faces Servlet</servlet-name><url-pattern>*.xhtml</url-pattern></servlet-mapping>
</web-app>

步骤12:建立user.hbm.xml

用户表配置已设置。

<?xml version='1.0'?>
<!DOCTYPE hibernate-mapping PUBLIC
'-//Hibernate/Hibernate Mapping DTD 3.0//EN'
'http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd'><hibernate-mapping><class name='com.otv.hbm.User' table='USER'><id name='id' type='int' column='ID' ><generator class='increment'/></id><property name='name'><column name='NAME' /></property><property name='surname'><column name='SURNAME'/></property></class>
</hibernate-mapping>

步骤13:建立hibernate.cfg.xml

创建hibernate.cfg.xml来管理应用程序和数据库之间的交互:

<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC'-//Hibernate/Hibernate Configuration DTD//EN''http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd'><hibernate-configuration>
<session-factory><property name='hibernate.connection.driver_class'>com.mysql.jdbc.Driver</property><property name='hibernate.connection.url'>jdbc:mysql://localhost:3306/Test</property><property name='hibernate.connection.username'>root</property><property name='hibernate.connection.password'>root</property><property name='hibernate.connection.pool_size'>10</property><property name='show_sql'>true</property><property name='dialect'>org.hibernate.dialect.MySQLDialect</property><!-- Mapping files --><mapping resource='hbm/user.hbm.xml'/>
</session-factory>
</hibernate-configuration>

步骤14:将项目部署到应用程序服务器

将Project部署到Application Server(Apache tomcat)时,屏幕如下所示:

单击提交按钮后,将显示welcome.xhtml页面,如下所示:

步骤15:下载

OTV_JSF_Hibernate_PrimeFaces

参考: JSF –我们的JCG合作伙伴 Eren Avsarogullari的PrimeFaces和Hibernate集成项目 ,位于Online Technology Vision博客上。

翻译自: https://www.javacodegeeks.com/2012/08/jsf-primefaces-hibernate-integration.html

jsf集成spring

jsf集成spring_JSF – PrimeFaces和Hibernate集成项目相关推荐

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

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

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

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

  3. JSF – PrimeFaces和休眠集成项目

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

  4. Primefaces Spring和Hibernate集成示例教程

    Primefaces Spring和Hibernate集成示例教程 欢迎使用Spring Primefaces和Hibernate Integration示例.框架之间的集成是一项复杂的任务,而且大多 ...

  5. primefaces教程_Primefaces Spring和Hibernate集成示例教程

    primefaces教程 Welcome to the Spring Primefaces and Hibernate Integration example. Integration between ...

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

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

  7. Primefaces,Hibernate和SpringRoo集成

    Primefaces,Hibernate和SpringRoo集成 SpringRoo是一个开源软件工具,它使用约定优于配置的概念,以便以驱动的命令行方式生成基于Java的企业软件应用程序.我们已经介绍 ...

  8. JSF Spring Hibernate集成示例教程

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

  9. jpa jsf_完整的Web应用程序Tomcat JSF Primefaces JPA Hibernate –第1部分

    jpa jsf 我们创建了这篇文章,将展示如何使用以下工具创建完整的Web应用程序:Tomcat7,带有Primefaces的JSF2(Facelets和Libraries)(具有AutoComple ...

最新文章

  1. 指定的文件夹没有包含设备的兼容软件驱动程序_Windows 10 2020年5月更新兼容性问题汇总...
  2. 成人怎么学计算机英语单词,成人怎么从零开始学英语单词
  3. JavaScript setTimeout函数
  4. C++用FindFirstFile、FindNext递归遍历硬盘的文件
  5. 云智一体趋势下,百度智能云打通技术与商业的共生闭环
  6. Kubernetes-dashboard安装
  7. WebKit中的Chrome和ChromeClient
  8. Docker的容器运行时组件Containerd
  9. 们--加强斐波那契【递推】
  10. 让猫给人打工,猫咖是一门好生意吗?
  11. OpenShift 4 - DevSecOps (4) - 实现一个 CICD Pipeline,并用 RHACS 发现安全隐患
  12. Greenplum 数据库一体机硬件配置正式开源
  13. ubuntu13.10 归档管理器解压zip文件中文乱码问题的解决(亲测成功)
  14. 暴风影音去广告补丁NSIS代码开放
  15. 推荐10本必读的心理学书籍
  16. 助力单细胞高通量测序国产替代
  17. 计算机毕业设计android的消防安全知识宣传app(源码+系统+mysql数据库+Lw文档)
  18. java井字游戏_java井字棋源代码(双人对战版)
  19. SH7001单电池恒压线性充电IC
  20. 情感分类——Attention(前篇续)

热门文章

  1. 图解 5 种 Join 连接及实战案例!(inner/ left/ right/ full/ cross)
  2. 什么时候才能都及格呢?
  3. Ajax传递json数据
  4. 集合中重写equals方法删除new的对象
  5. tomcatSupplement(1)tomcat启动脚本分析(以Windows平台为例)
  6. spring使用自定义注解_用Spring组成自定义注释
  7. 过滤器过滤特定的url_如何从过滤器中排除URL
  8. 并行流 线程池_使用自定义线程池处理并行数据库流
  9. stackoverflow_Stackoverflow:您尚未发现的7个最佳Java答案
  10. jcache_随机JCache内容:多个提供程序和JMX Bean