JSF+Spring+Hibernate做的login

JSF+Spring+Hibernate做的login
     源文件结构
JSF+Spring+Hibernate做的login_第1张图片
    web文件结构
JSF+Spring+Hibernate做的login_第2张图片
1 UserBean.java
 1  package  officeautomatic;
 2 
 3  import  javax.faces.event.ActionEvent;
 4 
 5  public   class  UserBean {
 6       private  Integer id;
 7       private  String name;
 8       private  String pass;
 9       private  String err;
10       private  UserDAO userDAO;
11       private  String outcome;
12      
13       public   void  setId(Integer id) {
14           this .id  =  id;
15      }
16      
17       public  Integer getId() {
18           return  id;
19      }
20      
21       public   void  setName(String name) {
22           this .name  =  name;
23      }
24      
25       public  String getName() {
26           return  name;
27      }
28      
29       public   void  setPass(String pass) {
30           this .pass  =  pass;
31      }
32      
33       public  String getPass() {
34           return  pass;
35      }
36      
37       public   void  setErr(String err) {
38           this .err  =  err;
39      }
40      
41       public  String getErr() {
42           return  err;
43      }
44      
45       public   void  setUserDAO(UserDAO userDAO) {
46           this .userDAO  =  userDAO;
47      }
48      
49       public  UserDAO getUserDAO() {
50           return  userDAO;
51      }
52      
53       public   void  checkValue(ActionEvent e) {
54           if ((getUserDAO().find(id)  !=   null &&  pass.equals(getUserDAO().find( new  Integer(id)).getPass())){
55              setName(getUserDAO().find( new  Integer(id)).getName());
56              outcome  =   " success " ;
57          }
58           else {
59              setErr( " error! " );
60              outcome  =   " failure " ;
61          }
62      }
63      
64       public  String outcome(){
65           return  outcome;
66      }
67  }
    checkValue方法里由id搜索,核对password的过程想改成单独的UserValidator类
2 IUserDAO.java
1  package  officeautomatic;
2 
3  public   interface  IUserDAO {
4       public  UserBean find(Integer id); 
5  }
3 UserDAO.java
 1  package  officeautomatic;
 2 
 3  import  org.hibernate.Hibernate;
 4  import  org.hibernate.Session;
 5  import  org.hibernate.SessionFactory;
 6 
 7  public   class  UserDAO  implements  IUserDAO {
 8       private  SessionFactory sessionFactory;
 9      
10       public  UserDAO() {
11          
12      }
13      
14       public  UserDAO(SessionFactory sessionFactory) {
15           this .setSessionFactory(sessionFactory);
16      }
17      
18       public   void  setSessionFactory(SessionFactory sessionFactory) {
19           this .sessionFactory  =  sessionFactory;
20      }
21          
22       public  UserBean find(Integer id) {
23          Session session  =  sessionFactory.openSession();
24          
25          UserBean userBean  =  (UserBean) session.get(UserBean. class , id);
26          Hibernate.initialize(userBean);
27          
28          session.close();
29          
30           return  userBean;
31      }
32  }
4 index.jsp
 1  <% @ page language = " java "  contentType = " text.html; charset=BIG5 "
 2   pageEncoding = "BIG5 " %>
 3  <% @taglib uri = " http://java.sun.com/jsf/core "  prefix = " f "   %>
 4  <% @taglib uri = " http://java.sun.com/jsf/html "  prefix = " h "   %>
 5 
 6  <! DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" >
 7  < html >
 8     < head >
 9       < meta  http-equiv ="Content-Type"  content ="text/html; charset=BIG5" >
10       < title > Login </ title >
11     </ head >
12    
13     < body >
14       < f:view  locale ="zh_CN" >
15         < h:form  id ="loginForm" >
16           < h:message  for ="userNameInput" ></ h:message >
17           < h:outputText  value ="#{userBean.err}" ></ h:outputText >
18           < p >
19             < h:outputLabel  for ="userNameInput" >
20               < h:outputText  id ="userNameLabel"  value ="User ID:" ></ h:outputText >
21             </ h:outputLabel >
22             < h:inputText  id ="userNameInput"  value ="#{userBean.id}"  required ="true" ></ h:inputText >
23           </ p >
24           < p >
25             < h:outputLabel  for ="passwordInput" >
26               < h:outputText  id ="passwordLabel"  value ="Password:" ></ h:outputText >
27             </ h:outputLabel >
28             < h:inputSecret  id ="passwordInput"  value ="#{userBean.pass}"  required ="true" ></ h:inputSecret >
29           </ p >
30           < h:commandButton  id ="submitButton"  value ="Submmit"  actionListener ="#{userBean.checkValue}"  action ="#{userBean.outcome}" ></ h:commandButton >
31         </ h:form >
32       </ f:view >
33     </ body >
34  </ html >
    actionListener作为JSF的监听器,返回void。
5 welcome.jsp
 1  <% @ page language = " java "  contentType = " text.html; charset=BIG5 "
 2   pageEncoding = " BIG5 " %>
 3  <% @taglib uri = " http://java.sun.com/jsf/core "  prefix = " f "   %>
 4  <% @taglib uri = " http://java.sun.com/jsf/html "  prefix = " h "   %>
 5 
 6  <! DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" >
 7  < html >
 8     < head >
 9       < meta  http-equiv ="Content-Type"  content ="text/html; charset=BIG5" >
10       < title > welcome </ title >
11     </ head >
12    
13     < body >
14       < f:view >
15         < h:outputText  value ="#{userBean.name}" />
16         < h3 > login successfully </ h3 >
17       </ f:view >
18     </ body >
19  </ html >
faces-config.xml
 1  <? xml version="1.0" encoding="UTF-8" ?>
 2  <! DOCTYPE faces-config PUBLIC 
 3  "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.0//EN" 
 4  "http://java.sun.com/dtd/web-facesconfig_1_0.dtd"  >
 5 
 6  < faces-config >
 7     < application >
 8       < variable-resolver >
 9        org.springframework.web.jsf.DelegatingVariableResolver
10       </ variable-resolver >
11     </ application >
12     < navigation-rule >
13       < from-view-id > /index.jsp </ from-view-id >
14       < navigation-case >
15         < from-outcome > success </ from-outcome >
16         < to-view-id > /welcome.jsp </ to-view-id >
17       </ navigation-case >
18       < navigation-case >
19         < from-outcome > failure </ from-outcome >
20         < to-view-id > /index.jsp </ to-view-id >
21       </ navigation-case >
22 
23     </ navigation-rule >
24    
25     < managed-bean >
26       < managed-bean-name > userBean </ managed-bean-name >
27       < managed-bean-class > officeautomatic.UserBean </ managed-bean-class >
28       < managed-bean-scope > session </ managed-bean-scope >
29       < managed-property >
30         < property-name > userDAO </ property-name >
31            < value > #{userDAO} </ value >
32       </ managed-property >
33      
34     </ managed-bean >
35    
36  </ faces-config >

7 beans-config.xml

 1  <? xml version="1.0" encoding="UTF-8" ?>
 2  < beans  xmlns ="http://www.springframework.org/schema/beans"
 3    xmlns:xsi ="http://www.w3.org/2001/XMLSchema-instance"
 4    xsi:schemaLocation ="http://www.springframework.org/schema/beans 
 5    http://www.springframework.org/schema/beans/spring-beans-2.0.xsd" >
 6    
 7       < bean  id ="dataSource"  class ="org.springframework.jdbc.datasource.DriverManagerDataSource" >
 8         < property  name ="driverClassName"  value ="com.mysql.jdbc.Driver" />
 9         < property  name ="url"  value ="jdbc:mysql://localhost:3306/cie" />
10         < property  name ="username"  value ="root" />
11         < property  name ="password"  value ="123456" />
12       </ bean >
13      
14       < bean  id ="sessionFactory"
15            class ="org.springframework.orm.hibernate3.LocalSessionFactoryBean"
16            destroy-method ="close" >
17         < property  name ="dataSource"  ref ="dataSource" />
18         < property  name ="mappingResources" >
19           < list >
20             < value >officeautomatic/ UserBean.hbm.xml </ value >
21           </ list >
22         </ property >
23         < property  name ="hibernateProperties" >
24           < props >
25             < prop  key ="hibernate.dialect" >
26              org.hibernate.dialect.MySQLDialect
27             </ prop >
28           </ props >
29         </ property >
30       </ bean >
31      
32       < bean  id ="userDAO"  class ="officeautomatic.UserDAO" >
33         < property  name ="sessionFactory"  ref ="sessionFactory" ></ property >
34       </ bean >
35 
36  </ beans >

    cie:数据库名。
    sessionFactory的value要带包名,officeautomatic/UserBean.hbm.xml这错误查了好久,唉……
UserBean.hbm.xml

 1  <? xml version="1.0" encoding="UTF-8" ?>
 2  <! DOCTYPE hibernate-mapping 
 3  PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" 
 4  "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"  >
 5 
 6  < hibernate-mapping >
 7     < class  name ="officeautomatic.UserBean"  table ="user" >
 8    
 9       < id  name ="id"  column ="id" >
10         < generator  class ="native" ></ generator >
11       </ id >
12      
13       < property  name ="name"  column ="username" ></ property >
14      
15       < property  name ="pass"  column ="password" ></ property >
16    
17     </ class >
18  </ hibernate-mapping >
      UserBean类与数据库中user表格对应。
9 web.xml
 1  <? xml version="1.0" encoding="UTF-8" ?>
 2  < web-app  xmlns ="http://java.sun.com/xml/ns/javaee"  
 3  xmlns:xsi ="http://www.w3.org/2001/XMLSchema-instance"  version ="2.5"  
 4  xsi:schemaLocation ="http://java.sun.com/xml/ns/javaee   
 5  http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" >
 6    
 7     < session-config >
 8       < session-timeout > 30 </ session-timeout >
 9     </ session-config >
10     
11     < servlet >
12       < servlet-name > context </ servlet-name >
13         < servlet-class >
14          org.springframework.web.context.ContextLoaderServlet
15         </ servlet-class >
16       < load-on-startup > 1 </ load-on-startup >
17     </ servlet >
18       < listener >
19           < listener-class >
20              org.apache.myfaces.webapp.StartupServletContextListener
21           </ listener-class >
22       </ listener >
23     < context-param >
24       < param-name > contextConfigLocation </ param-name >
25       < param-value > /WEB-INF/applicationContext.xml </ param-value >
26     </ context-param >
27     < context-param >
28       < param-name > javax.faces.CONFIG_FILES </ param-name >
29       < param-value > /WEB-INF/faces-config.xml </ param-value >
30     </ context-param >   
31 
32     < servlet >
33       < servlet-name > Faces Servlet </ servlet-name >
34       < servlet-class > javax.faces.webapp.FacesServlet </ servlet-class >
35       < load-on-startup > 0 </ load-on-startup >
36     </ servlet >
37     < servlet-mapping >
38     < servlet-name > Faces Servlet </ servlet-name >
39       < url-pattern > *.faces </ url-pattern >
40     </ servlet-mapping >
41 
42  </ web-app >
43 
    用了myface的listener,要加个myface的包。

你可能感兴趣的:(JSF+Spring+Hibernate做的login)