`

三个JAVA文件完成jsf+spring+hibernate的集成.

阅读更多
呵呵,本文章只贡献给哪些走捷径的coder,
开发工具:myeclise5.5.GA(最好是)
环境:spring 1.2 hibernate 3.2 jsf 1.1
如何搭建这个应用,应该是比如简单吧.
1)新建立一个myeclipse的web project
2)使用myeclise database explorer 建立一个数据库的连接.
3)操作   项目->右键->myeclise->add hibernate capabilities....,使用刚才的数据源,版本选择3.2
4)操作   项目->右键->myeclise->add spring capabilities...., 版本选择1.2
5)操作   项目->右键->myeclise->add jsf capabilities...., 版本选择1.1,
(不要因为好奇心乱加版本呀,我可是经过多次试验得出的结果)
引用"10元RMB"里的话做的开场:唉呀唉呀,天睛了,雨停了,你又觉得你行了.
web.xml
xml 代码
 
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <web-app xmlns="http://java.sun.com/xml/ns/j2ee"  
  3.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4"  
  4.     xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee   http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">  
  5.     <servlet>  
  6.         <servlet-name>context</servlet-name>  
  7.         <servlet-class>  
  8.             org.springframework.web.context.ContextLoaderServlet  
  9.         </servlet-class>  
  10.         <load-on-startup>1</load-on-startup>  
  11.     </servlet>  
  12.   
  13.     <context-param>  
  14.         <param-name>contextConfigLocation</param-name>  
  15.         <param-value>classpath:applicationContext.xml</param-value>  
  16.     </context-param>  
  17.     <context-param>  
  18.         <param-name>javax.faces.CONFIG_FILES</param-name>  
  19.         <param-value>/WEB-INF/faces-config.xml</param-value>  
  20.     </context-param>  
  21.     <servlet>  
  22.         <servlet-name>Faces Servlet</servlet-name>  
  23.         <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>  
  24.         <load-on-startup>0</load-on-startup>  
  25.     </servlet>  
  26.     <servlet-mapping>  
  27.         <servlet-name>Faces Servlet</servlet-name>  
  28.         <url-pattern>*.faces</url-pattern>  
  29.     </servlet-mapping>  
  30.     <welcome-file-list>  
  31.         <welcome-file>index.jsp</welcome-file>  
  32.     </welcome-file-list>  
  33. </web-app>  
userdao接口
java 代码
 
  1. package com.antbee.report.dao;  
  2.   
  3. import java.util.List;  
  4.   
  5. import com.antbee.report.hibernate.model.SysUser;  
  6.   
  7. public interface UserDao {  
  8.     public List getUsers();  
  9.     public SysUser getUser(String userId);  
  10.     public void saveUser(SysUser user);  
  11.     public void removeUser(String userId);  
  12. }  
dao的实现类:
java 代码
 
  1. package com.antbee.report.daoimpl;  
  2.   
  3. import java.util.List;  
  4.   
  5. import org.springframework.orm.hibernate3.support.HibernateDaoSupport;  
  6.   
  7. import com.antbee.report.dao.UserDao;  
  8. import com.antbee.report.hibernate.model.SysUser;  
  9.   
  10. public class UserDaoImpl extends HibernateDaoSupport implements UserDao {  
  11.   
  12.     public SysUser getUser(String userId) {  
  13.         // TODO Auto-generated method stub  
  14.         return null;  
  15.     }  
  16.   
  17.     public List getUsers() {          
  18.         return this.getHibernateTemplate().find("from SysUser as a");  
  19.     }  
  20.   
  21.     public void removeUser(String userId) {  
  22.         // TODO Auto-generated method stub  
  23.   
  24.     }  
  25.   
  26.     public void saveUser(SysUser user) {  
  27.         // TODO Auto-generated method stub  
  28.   
  29.     }  
  30.   
  31. }  
类似于struts的web应用,也就是action吧.
java 代码
 
  1. package com.antbee.report.action;  
  2.   
  3.   
  4. import javax.faces.model.DataModel;  
  5. import javax.faces.model.ListDataModel;  
  6.   
  7. import com.antbee.report.dao.UserDao;  
  8. import com.antbee.report.hibernate.model.SysUser;  
  9.   
  10. public class UserBean {  
  11.     private UserDao userDao;  
  12.     private SysUser sysuser = new SysUser();  
  13.     private DataModel users=new ListDataModel();  
  14.       
  15.       
  16.     public DataModel getUsers() {  
  17.         users.setWrappedData(this.userDao.getUsers());   
  18.         return users;  
  19.     }  
  20.     public void setUsers(DataModel users) {       
  21.         this.users = users;  
  22.     }  
  23.       
  24.     public UserDao getUserDao() {  
  25.         return userDao;  
  26.     }  
  27.     public void setUserDao(UserDao userDao) {  
  28.         this.userDao = userDao;  
  29.     }  
  30.     public SysUser getSysuser() {  
  31.         return sysuser;  
  32.     }  
  33.     public void setSysuser(SysUser sysuser) {        
  34.         this.sysuser = sysuser;  
  35.     }  
  36. }  
Spring的配置:
xml 代码
 
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">  
  3. <beans>  
  4.     <!-- SessionFactory配置 -->  
  5.     <bean id="SessionFactory"  
  6.         class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">  
  7.         <property name="configLocation">  
  8.             <value>classpath:hibernate.cfg.xml</value>  
  9.         </property>  
  10.     </bean>  
  11.     <!-- TransactionManager事务管理 -->  
  12.     <bean id="TransactionManager"  
  13.         class="org.springframework.orm.hibernate3.HibernateTransactionManager"  
  14.         abstract="false" singleton="true" lazy-init="default"  
  15.         autowire="default" dependency-check="default">  
  16.         <property name="sessionFactory">  
  17.             <ref bean="SessionFactory" />  
  18.         </property>  
  19.     </bean>  
  20.     <!-- BaseDAO基础DAO配置 -->  
  21.     <bean id="BaseTransactionProxy"  
  22.         class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"  
  23.         abstract="true">  
  24.         <property name="transactionManager">  
  25.             <ref bean="TransactionManager" />  
  26.         </property>  
  27.         <property name="proxyTargetClass">  
  28.             <value>true</value>  
  29.         </property>  
  30.         <property name="transactionAttributes">  
  31.             <props>  
  32.                 <prop key="save*">PROPAGATION_REQUIRED</prop>  
  33.                 <prop key="remove*">PROPAGATION_REQUIRED</prop>  
  34.                 <prop key="*">PROPAGATION_REQUIRED</prop>  
  35.             </props>  
  36.         </property>  
  37.     </bean>  
  38.   
  39.     <bean id="userDao" class="com.antbee.report.daoimpl.UserDaoImpl">  
  40.         <property name="sessionFactory">  
  41.             <ref local="SessionFactory" />  
  42.         </property>  
  43.     </bean>  
  44.     <bean id="userDaoProxy" parent="BaseTransactionProxy"  
  45.         class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">  
  46.         <property name="target">  
  47.             <ref local="userDao" />  
  48.         </property>  
  49.     </bean>  
  50.   
  51. </beans>  
face-config.xml
xml 代码
 
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <!DOCTYPE faces-config PUBLIC "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.1//EN" "http://java.sun.com/dtd/web-facesconfig_1_1.dtd">  
  3.   
  4. <faces-config>  
  5.     <application>  
  6.         <variable-resolver>org.springframework.web.jsf.DelegatingVariableResolver</variable-resolver>  
  7.     </application>  
  8.     <managed-bean>  
  9.         <managed-bean-name>userBean</managed-bean-name>  
  10.         <managed-bean-class>com.antbee.report.action.UserBean</managed-bean-class>  
  11.         <managed-bean-scope>session</managed-bean-scope>  
  12.         <managed-property>  
  13.             <property-name>userDao</property-name>  
  14.             <value>#{userDao}</value>  
  15.         </managed-property>  
  16.     </managed-bean>  
  17.     <navigation-rule>  
  18.         <from-view-id>/index.jsp</from-view-id>  
  19.         <navigation-case>  
  20.             <to-view-id>/browse.jsp</to-view-id>              
  21.         </navigation-case>  
  22.     </navigation-rule>  
  23. </faces-config>  
呵呵 ,写个页面看看效果.
index.jsp
java 代码
 
  1. <html>  
  2.     <head>  
  3.        <title>Index</title>  
  4.     </head>  
  5.     <body>  
  6.        <a href="browse.faces">Login</a>  
  7.     </body>  
  8. </html>  
显示所有用户 browse.jsp
java 代码
 
  1. <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>  
  2. <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>  
  3. <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>  
  4. <%@ page language="java" pageEncoding="UTF-8"%>  
  5. <html>  
  6.     <head>  
  7.         <title>  
  8.             Browse User  
  9.         </title>  
  10.     </head>  
  11.     <body>  
  12.         <f:view>  
  13.             <h:form>  
  14.                 <h:dataTable id="table" value="#{userBean.users}" var="u" border="1" width="80%">  
  15.                     <h:column>  
  16.                     <f:facet name="header">  
  17.                             <f:verbatim escape="true">ID</f:verbatim>  
  18.                         </f:facet>  
  19.                         <h:outputText value="#{u.id}" />  
  20.                 </h:column>  
  21.                     <h:column>  
  22.                     <f:facet name="header">  
  23.                             <f:verbatim escape="true">User Name</f:verbatim>  
  24.                         </f:facet>  
  25.                         <h:commandLink id="username" value="#{u.userName}">  
  26.                         </h:commandLink>  
  27.                 </h:column>  
  28.                     <h:column>  
  29.                         <f:facet name="header">  
  30.                             <f:verbatim escape="true">Password</f:verbatim>  
  31.                         </f:facet>  
  32.                         <h:outputText value="#{u.passWordMd5}" />  
  33.                 </h:column>  
  34.                 <h:column>  
  35.                     <f:facet name="header">  
  36.                             <f:verbatim escape="true">Operation</f:verbatim>  
  37.                         </f:facet>                        
  38.                 </h:column>  
  39.                 </h:dataTable>  
  40.             </h:form>  
  41.             <br>              
  42.         </f:view>  
  43.     </body>  
  44. </html>  

大功告成,如果你没有配置成功,请你检查一下你的版本,如果还有问题,请给你留言,呵呵.
分享到:
评论
3 楼 javaIE 2007-08-21  
求源码,谢谢楼主markcoollee@yahoo.com.cn
2 楼 fj_opensky 2007-07-24  
谢谢。
1 楼 liuxinsudi 2007-07-24  
hibernate.cfg.xml 能否写出来看看,dataSource 你是配在hibernate.cfg.xml里面吗?

相关推荐

    java开源包101

    LemonSMS 这个Java库可以让开发者在应用程序中集成使用GSM调制解调器或兼容电话来发送SMS消息。 远程桌面 Java Remote Desktop.tar Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、...

    JAVA上百实例源码以及开源项目

     Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java文件传输实例不可错过,Java网络编程技能的提升很有帮助。 Java聊天程序,包括服务端和...

    java开源包10

    LemonSMS 这个Java库可以让开发者在应用程序中集成使用GSM调制解调器或兼容电话来发送SMS消息。 远程桌面 Java Remote Desktop.tar Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、...

    JAVA上百实例源码以及开源项目源代码

     Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java文件传输实例不可错过,Java网络编程技能的提升很有帮助。 Java聊天程序,包括服务端和...

    java开源包4

    LemonSMS 这个Java库可以让开发者在应用程序中集成使用GSM调制解调器或兼容电话来发送SMS消息。 远程桌面 Java Remote Desktop.tar Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、...

    java开源包11

    LemonSMS 这个Java库可以让开发者在应用程序中集成使用GSM调制解调器或兼容电话来发送SMS消息。 远程桌面 Java Remote Desktop.tar Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、...

    spring4.3.9相关jar包

    spring-web.jar(必须) :这个jar 文件包含Web 应用开发时,用到Spring 框架时所需的核心类,包括自动载入Web Application Context 特性的类、Struts 与JSF 集成类、文件上传的支持类、Filter 类和大量工具辅助类。...

    java开源包6

    LemonSMS 这个Java库可以让开发者在应用程序中集成使用GSM调制解调器或兼容电话来发送SMS消息。 远程桌面 Java Remote Desktop.tar Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、...

    java开源包9

    LemonSMS 这个Java库可以让开发者在应用程序中集成使用GSM调制解调器或兼容电话来发送SMS消息。 远程桌面 Java Remote Desktop.tar Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、...

    java开源包5

    LemonSMS 这个Java库可以让开发者在应用程序中集成使用GSM调制解调器或兼容电话来发送SMS消息。 远程桌面 Java Remote Desktop.tar Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、...

    java开源包8

    LemonSMS 这个Java库可以让开发者在应用程序中集成使用GSM调制解调器或兼容电话来发送SMS消息。 远程桌面 Java Remote Desktop.tar Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、...

    java开源包1

    LemonSMS 这个Java库可以让开发者在应用程序中集成使用GSM调制解调器或兼容电话来发送SMS消息。 远程桌面 Java Remote Desktop.tar Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、...

    java开源包3

    LemonSMS 这个Java库可以让开发者在应用程序中集成使用GSM调制解调器或兼容电话来发送SMS消息。 远程桌面 Java Remote Desktop.tar Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、...

    java开源包2

    LemonSMS 这个Java库可以让开发者在应用程序中集成使用GSM调制解调器或兼容电话来发送SMS消息。 远程桌面 Java Remote Desktop.tar Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、...

    java开源包7

    LemonSMS 这个Java库可以让开发者在应用程序中集成使用GSM调制解调器或兼容电话来发送SMS消息。 远程桌面 Java Remote Desktop.tar Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、...

    Java资源包01

    LemonSMS 这个Java库可以让开发者在应用程序中集成使用GSM调制解调器或兼容电话来发送SMS消息。 远程桌面 Java Remote Desktop.tar Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、...

    Spring in Action(第二版 中文高清版).part2

    5.4 在Spring里集成Hibernate 5.4.1 选择Hibernate的版本 5.4.2 使用Hibernate模板 5.4.3 建立基于Hibernate的DAO 5.4.4 使用Hibernate 3上下文会话 5.5 Spring和Java持久API 5.5.1 使用JPA模板 5.5.2 创建...

    Spring in Action(第二版 中文高清版).part1

    5.4 在Spring里集成Hibernate 5.4.1 选择Hibernate的版本 5.4.2 使用Hibernate模板 5.4.3 建立基于Hibernate的DAO 5.4.4 使用Hibernate 3上下文会话 5.5 Spring和Java持久API 5.5.1 使用JPA模板 5.5.2 创建...

    Spring in Action(第2版)中文版

    5.4在spring里集成hibernate 5.4.1选择hibernate的版本 5.4.2使用hibernate模板 5.4.3建立基于hibernate的dao 5.4.4使用hibernate3上下文会话 5.5spring和java持久api 5.5.1使用jpa模板 5.5.2创建一个实体...

Global site tag (gtag.js) - Google Analytics