您的位置:首页 > 编程语言 > Java开发

整合 JSF+Spring+Hibernate的小例子【转】

2017-05-24 21:13 302 查看
(1)UserInfo.java


package com.zhaoqingjie.service.hibernate;




import java.io.Serializable;


import org.apache.commons.lang.builder.ToStringBuilder;




public class UserInfo implements Serializable{




private String id;




private String username;




private String email;




public UserInfo(String id,String username,String email){




this.id = id;


this.username = username;


this.email = email;




}




public UserInfo(){




}




public UserInfo(String id){


this.id = id;


}




public String getId(){ <
4000
br>


return id;


}




public void setId(String id){


this.id = id;


}




public String getEmail(){


return email;


}




public void setEmail(String email){


this.email = emial;


}




public String getUsername(){


return username;


}




public void setUsername(String username){


this.username = username;


}




public String toString(){


return new ToStringBuilder(this).append("id",getId()).toString();


}




}
(2)UserInfo.hbm.xml


<?xml version="1.0"?>


<!DOCTYPE hibernate-mapping PUBLIC


"-//Hibernate/Hibernate Mapping DTD 2.0//EN"


"http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd" >




<hibernate-mapping>


<class name="com.zhaoqingjie.spring.service.hibernate.UserInfo" table="userinfo">


<meta attribute="class-description" inherit="false">


@hibernate.class


table="userinfo"


</meta>




<id name="id" type="java.lang.String" column="id">


<meta attribute="field-description">


@hibernate.id


generator-class="assigned"


type="java.lang.String"


column="id"


</meta>


<generator class="assigned"/>


</id>




<property name="username" type="java.lang.String" column="username" length="36">


<meta attribute="field-description">


@hibernate.property


column="username"


length="36"


</meta>


</property>




<property name="email" type="java.lang.String" column="email" length="60">


<meta attribute="field-description">


@hibernate.property


column="email"


length="60"


</meta>


</property>




</class>


</hibernate-mapping>
(3)IUserInfoDAO.java


package com.zhaoqingjie.spring.service.dao;




import com.openv.spring.domainmodel.UserInfoVO;


import org.springframework.dao.DataAccessException;


import java.io.Serializable;




public interface IUserInfoDAO extends Serializable{


public boolean setUserInfo(UserInfoVO userinfoVO)throws DataAccessException;




}

(4)UserInfoDAO.java


package com.zhaoqingjie.spring.service.dao.impl;




import org.apache.commons.logging.Log;


import org.apache.commons.logging.LogFactory;


import org.doomdark.uuid.UUIDGenerator;


import org.springframework.dao.DataAccessException;


import org.springframework.orm.hibernate.support.HibernateDaoSupport;


import com.zhaoqingjie.spring.domainmodel.UserInfoVO;


import com.zhaoqingjie.spring.service.dao.IUserInfoDAO;


import com.zhaoqingjie.spring.service.hibernate.UserInfo;




public class UserInfoDAO extends HibernateDaoSupport implements IUserInfoDAO{


private static final Log log = LogFactory.getLog(UserInfoDAO.class);




public boolean setUserInfo(UserInfoVO userinfoVO)throws DataAccessException{


if(userinfoVO == null){


return false;


}




UserInfo ui = new UserInfo();


ui.setId(getID());


ui.setUsername(userinfoVO.getUsername().trim());


ui.setEmail(userinfoVO.getEmail().trim());


this.getHibernateTemplate().save(ui);


return true;




}




private String getID(){


return UUIDGenerator.getInatance().generateTimeBaseUUID().toString();


}


}
(5)IExampleManager.java


package com.zhaoqingjie.spring.service;


import com.openv.spring.domainmodel.UserInfoVO;


import org.springframework.dao.DataAccessException;


import java.io.Serializable;






public interface IExampleManager extends Serializable {


public boolean setUserInfo(UserInfoVO userinfoVO)


throws DataAccessException;


}

(6)ExampleManagerImpl.java


package com.zhaoqingjie.spring.service.impl;




import com.openv.spring.domainmodel.UserInfoVO;


import com.openv.spring.service.IExample29Manager;


import com.openv.spring.service.dao.IUserInfoDAO;




import org.apache.commons.logging.Log;


import org.apache.commons.logging.LogFactory;




import org.springframework.dao.DataAccessException;




public class ExampleManagerImpl implements IExampleManager {


private static final Log log = LogFactory


.getLog(ExampleManagerImpl.class);




private IUserInfoDAO userinfo;




public ExampleManagerImpl() {


log.info("ExampleManagerImpl()...................");


}




public void setUserinfo(IUserInfoDAO userinfoDAO)


throws DataAccessException {


this.userinfo = userinfoDAO;


}




public boolean setUserInfo(UserInfoVO userinfoVO)


throws DataAccessException {


return userinfo.setUserInfo(userinfoVO);


}


}

(7)UserInfoVO.java


package com.zhaoqingjie.spring.domainmodel;




import java.io.Serializable;




public class UserInfoVO implements Serializable{




private String username;


private String email;




public String getEmail(){


return email;


}




public void setEmail(String email){


this.email = email;


}




public String getUsername(){


return username;


}




public void setUsername(String username){


this.username = username;


}


}

JSF表示层

(8)InfoBean.java


package com.zhaoqingjie.spring.jsf;




import javax.faces.context.FacesContext;




import org.apache.commons.logging.Log;


import org.apache.commons.logging.LogFactory;


import org.springframework.context.ApplicationContext;


import org.springframework.web.jsf.FacesContextUtils;




import com.openv.spring.domainmodel.UserInfoVO;


import com.openv.spring.service.IExampleManager;




public class InfoBean {


private static final Log log = LogFactory.getLog(InfoBean.class);




private String username = null;




private String email = null;




private String response = null;




private long maximum = 0;




private boolean maximumSet = false;




private long minimum = 0;




private boolean minimumSet = false;






public InfoBean() {


}




public String getEmail() {


return email;


}




public void setEmail(String email) {


this.email = email;


}


public String getUsername() {


return username;


}


public void setUsername(String username) {


this.username = username;


}




public String submitPersonInfo() {


log.info(username);


log.info(email);




ApplicationContext ac = FacesContextUtils


.getWebApplicationContext(FacesContext.getCurrentInstance());


IExampleManager em = (IExampleManager) ac


.getBean("exampleService");


UserInfoVO uiVO = new UserInfoVO();


uiVO.setUsername(username);


uiVO.setEmail(email);




boolean flag = em.setUserInfo(uiVO);






if (flag) {


setResponse("注册成功");




return "success";


} else {


setResponse("注册失败");




return "failure";


}


}




public void setResponse(String response) {


this.response = response;


}




public String getResponse() {


return null;


}




public long getMaximum() {


return (this.maximum);


}




public void setMaximum(long maximum) {


this.maximum = maximum;


this.maximumSet = true;


}




public long getMinimum() {


return (this.minimum);


}




public void setMinimum(long minimum) {


this.minimum = minimum;


this.minimumSet = true;


}


}

(9)index.jsp


<html>


<head>


</head>


<body>


<jsp:forward page="/example/home.jsp" />


</body>


</html>

(10)home.jsp


<%@ page contentType="text/html; charset=gbk" %>


<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>


<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>


<html>


<head>


<title>


用户注册


</title>


</head>


<br>


<f:view>


<h:form id="helloForm" >


<table border="10" align="center"


bordercolor="#0099CC" cellpadding="6" bordercolorlight="#999999">


<tr>


<td colspan="2" bgcolor="#66CCFF">输入用户注册信息:</td>


</tr>


<tr>


<td>


<div align="right">用户名</div>


</td>


<td>


<h:inputText id="username" value="#{InfoBean.username}">


<f:validateLength minimum="#{InfoBean.minimum}"


maximum="#{InfoBean.maximum}" />


</h:inputText>


</td>


</tr>


<tr>


<td>


<div align="right">E_mail</div>


</td>


<td>


<h:inputText id="email" value="#{InfoBean.email}"/>


</td>


</tr>


<tr>


<td colspan="2" bgcolor="#FFFF40">


<span>


<h:message id="message"


for="username"/></span>


</td>


</tr>


<tr>


<td align="center" colspan="2">


<h:commandButton id="submit"


action="#{InfoBean.submitPersonInfo}" value="提交" />


</td>


</tr>


</table>


</h:form>


</f:view>


</html>

(11)success.jsp


<%@ page contentType="text/html; charset=gbk" %>


<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>


<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>


<html>


<head>


<title>


用户注册成功


</title>


</head>


<body bgcolor="white">


<f:view>


<h:form id="responseForm">


<h:graphicImage id="successImg"


url="images/form-success.jpg" alt="注册成功!"/>


<h2>


<h:outputText id="result"


value="#{InfoBean.response}"/></h2>


<h:commandButton id="back"


value="返回" action="su"/>


<p>


</h:form>


</f:view>


</html>

(12)failure.jsp


<%@ page contentType="text/html; charset=gbk" %>


<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>


<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>


<html>


<head>


<title>


用户注册失败


</title>


</head>


<body bgcolor="white">


<f:view>


<h:form id="responseForm">


<h:graphicImage id="successImg"


url="images/form-error.jpg" alt="注册失败!"/>


<h2>


<h:outputText id="result"


value="#{InfoBean.response}"/></h2>


<h:commandButton id="back"


value="返回" action="su"/>


<p>


</h:form>


</f:view>


</html>

(13)web.xml


<?xml version="1.0"?>


<web-app xmlns="http://java.sun.com/xml/ns/j2ee"


xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"


xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee

http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"

version="2.4">




<display-name>example</display-name>




<context-param>


<param-name>contextConfigLocation</param-name>


<param-value>/WEB-INF/applicationContext.xml</param-value>


</context-param>




<listener>


<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>


</listener>




<servlet>


<display-name>FacesServlet</display-name>


<servlet-name>FacesServlet</servlet-name>


<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>


<load-on-startup>1</load-on-startup>


</servlet>




<servlet-mapping>


<servlet-name>FacesServlet</servlet-name>


<url-pattern>/example/*</url-pattern>


</servlet-mapping>




</web-app>
(14)applicationContext.xml


<?xml version="1.0" encoding="UTF-8"?>


<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"


"http://www.springframework.org/dtd/spring-beans.dtd">


<beans>




<bean id="dataSource"


class="org.springframework.jndi.JndiObjectFactoryBean">


<property name="jndiName">


<value>java:/MySqlDS</value>


</property>


</bean>




<bean id="sessionFactory"


class="org.springframework.orm.hibernate.LocalSessionFactoryBean">


<property name="dataSource">


<ref local="dataSource"/>


</property>


<property name="mappingResources">


<list>


<value>


com/openv/spring/service/hibernate/UserInfo.hbm.xml


</value>


</list>


</property>


<property name="hibernateProperties">


<props>


<prop key="hibernate.dialect">


net.sf.hibernate.dialect.MySQLDialect


</prop>


<prop key="hibernate.show_sql">


true


</prop>


</props>


</property>


</bean>




<bean id="transactionManager"


class="org.springframework.orm.hibernate.HibernateTransactionManager">


<property name="sessionFactory">


<ref local="sessionFactory"/>


</property>


</bean>




<bean id="exampleServiceTarget"


class="com.openv.spring.service.impl.Example29ManagerImpl">


<property name="userinfo">


<ref local="userinfoDAO"/>


</property>


</bean>




<bean id="exampleService"


class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">


<property name="transactionManager">


<ref local="transactionManager"/>


</property>


<property name="target">


<ref local="exampleServiceTarget"/>


</property>


<property name="transactionAttributes">


<props>


<prop key="get*">


PROPAGATION_REQUIRED,readOnly


</prop>


<prop key="set*">


PROPAGATION_REQUIRED


</prop>


</props>


</property>


</bean>




<bean id="userinfoDAO"


class="com.openv.spring.service.dao.impl.UserInfoDAO">


<property name="sessionFactory">


<ref local="sessionFactory"/>


</property>


</bean>




</beans>

(15)faces-config.xml


<?xml version=’1.0’ encoding=’UTF-8’?>


<!DOCTYPE faces-config PUBLIC


"-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.1//EN"


"http://java.sun.com/dtd/web-facesconfig_1_1.dtd">


<faces-config>




<application>


<locale-config>


<default-locale>zh_CN</default-locale>


</locale-config>


</application>




<navigation-rule>


<description>


JSF Home Page


</description>


<from-view-id>/home.jsp</from-view-id>


<navigation-case>


<description>


success


</description>


<from-outcome>success</from-outcome>


<to-view-id>/success.jsp</to-view-id>


</navigation-case>


<navigation-case>


<description>


failure


</description>


<from-outcome>failure</from-outcome>


<to-view-id>/failure.jsp</to-view-id>


</navigation-case>


</navigation-rule>




<navigation-rule>


<description>


</description>


<from-view-id>/success.jsp</from-view-id>


<navigation-case>


<description>


</description>


<from-outcome>su</from-outcome>


<to-view-id>/home.jsp</to-view-id>


</navigation-case>


</navigation-rule>




<navigation-rule>


<description>


</description>


<from-view-id>/failure.jsp</from-view-id>


<navigation-case>


<description>


</description>


<from-outcome>su</from-outcome>


<to-view-id>/home.jsp</to-view-id>


</navigation-case>


</navigation-rule>




<managed-bean>


<description>


InfoBean


</description>


<managed-bean-name>InfoBean</managed-bean-name>


<managed-bean-class>


com.openv.spring.jsf.InfoBean


</managed-bean-class>




<managed-bean-scope>session</managed-bean-scope>


<managed-property>


<property-name>minimum</property-name>


<property-class>long</property-class>


<value>6</value>


</managed-property>




<managed-property>


<property-name>maximum</property-name>


<property-class>long</property-class>


<value>18</value>


</managed-property>


</managed-bean>




</faces-config>

原文地址http://www.cnblogs.com/hashmap/articles/2162435.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: