一溜烟读音:整合 JSF Spring Hibernate的小例子

来源:百度文库 编辑:偶看新闻 时间:2024/04/28 23:55:38
整合 JSF+Spring+Hibernate的小例子

(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

  "-//Hibernate/Hibernate Mapping DTD 2.0//EN"
  "
http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd" >
 



    @hibernate.class
    table="userinfo"




    @hibernate.id
    generator-class="assigned"
    type="java.lang.String"
    column="id"






    @hibernate.property
    column="username"
    length="36"





    @hibernate.property
    column="email"
    length="60"






-------------------------------------------------------------------------------------------------------
(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







(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" %>


<br>用户注册<br>



 
 
                    bordercolor="#0099CC" cellpadding="6" bordercolorlight="#999999">
             
                 
             
             
               
               
             
             
               
               
             
             
                 
             
             
                 
                 
       
输入用户注册信息:

                 
用户名

               

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

               

                 
E_mail

               

                       
               

                         
                                                            for="username"/>

                 

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

 

 



(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" %>


<br>用户注册成功<br>


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


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

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


     
 

(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" %>


<br>用户注册失败<br>


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


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

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


     
 

(13)web.xml

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">
 
  example

       
        contextConfigLocation
        /WEB-INF/applicationContext.xml
   


   
      org.springframework.web.context.ContextLoaderListener
     


   
        FacesServlet
        FacesServlet
        javax.faces.webapp.FacesServlet
        1
 


 
      FacesServlet
      /example/*
   

     

(14)applicationContext.xml

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


            class="org.springframework.jndi.JndiObjectFactoryBean">
   
        java:/MySqlDS
   

 


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

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

             

       

       
             
                 
                      net.sf.hibernate.dialect.MySQLDialect
                 

                 
                      true
                 

             

       

   


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

   


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

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

       
             
       

       
             
                 
                      PROPAGATION_REQUIRED,readOnly
                 

                 
                      PROPAGATION_REQUIRED
                 

             

       

   

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

   

   

(15)faces-config.xml

"-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.1//EN"
"
http://java.sun.com/dtd/web-facesconfig_1_1.dtd">



 
    zh_CN
 




 
      JSF Home Page
 

  /home.jsp
 
   
          success
   

    success
    /success.jsp
 

 
   
          failure
   

    failure
    /failure.jsp
 




 
 

  /success.jsp
 
   
   

    su
    /home.jsp
 




 
 

  /failure.jsp
 
   
   

    su
    /home.jsp
 




 
      InfoBean
 

  InfoBean
 
      com.openv.spring.jsf.InfoBean
 

 
  session
 
    minimum
    long
    6
 

 
 
    maximum
    long
    18