(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(){ 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?http://www.xvna.com" 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?http://www.xvna.com" 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> |