JSF注册例子

来源:互联网 发布:淘宝c店怎么运营 编辑:程序博客网 时间:2024/06/05 00:29

实体bean

package com.ljh.bean;

public class User implements java.io.Serializable{
    private static final long serialVersionUID = -6904888263734117634L;
    private Integer id;
    private String username;
    private String password;
    
    public User() {}
    
    public User(String username, String password) {
        this.username = username;
        this.password = password;
    }
    
    public String getUsername() {
        return username;
    }
    public void setUsername(String username) {
        this.username = username;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }

}


hibernate 映射 (user.hbm.xml 放在com.ljh.hbm包下)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd" >
<hibernate-mapping>
    <class name="com.ljh.bean.User">
        <id name="id">
            <generator class="native"></generator>
        </id>
        <property name="username" length="15"/>
        <property name="password" length="15"/>
    </class>
</hibernate-mapping>


dao接口

package com.ljh.dao;

import com.ljh.bean.User;

public interface UserDao {
    public void save(User user);
    public User findUser(String username);
}


dao实现类

package com.ljh.dao.impl;

import java.util.List;

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

import com.ljh.bean.User;
import com.ljh.dao.UserDao;

public class UserDaoImpl extends HibernateDaoSupport implements UserDao{
    private static final String QUERY_BY_NAME = "select new User(username,password) from User where username=?";
    @Override
    public void save(User user) {
        this.getHibernateTemplate().save(user);
    }

    @SuppressWarnings("unchecked")
    @Override
    public User findUser(String username) {
        List list = this.getHibernateTemplate().find(QUERY_BY_NAME, username);
        if(list==null||list.isEmpty()){
            return null;
        }
        return (User)list.get(0) ;
    }
}

serviceDao 接口
package com.ljh.service.dao;

import com.ljh.bean.User;


public interface UserServiceDao {
    public void save(User user);
    public boolean isExist(String username);
}

serviceDao 接口实现类

package com.ljh.service.dao.impl;

import com.ljh.bean.User;
import com.ljh.dao.UserDao;

public class UserServiceDaoImpl implements com.ljh.service.dao.UserServiceDao{
    private UserDao userDao;
    public UserDao getUserDao() {
        return userDao;
    }
    public void setUserDao(UserDao userDao) {
        this.userDao = userDao;
    }

    @Override
    public void save(User user) {
        userDao.save(user);
    }
    @Override
    public boolean isExist(String username) {
        User user = userDao.findUser(username);
        if(user==null){
            return false;
        }
        return true;
    }
}

spring 配置文件(applicationContext.xml 放在WEB-INF下)

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
    <!-- 配置数据源 -->
    <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
        <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/test?useUnicode=true&amp;characterEncoding=utf-8"/>
        <property name="user" value="root"/>
        <property name="password" value="root"/>
        <property name="driverClass" value="com.mysql.jdbc.Driver"/>
    </bean>
    <!-- 配置sessionFactory,线程安全且最好只创建一次 -->
    <bean id="sessionFactory"
        class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
        <property name="dataSource">
            <ref bean="dataSource" />
        </property>
        <property name="hibernateProperties">
            <props>
                <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
                <prop key="hibernate.show_sql">true</prop>
                <prop key="hibernate.hbm2ddl.auto">update</prop>
            </props>
        </property>
        <!-- 对象和表的映射 -->
        <property name="mappingDirectoryLocations">
            <list>
                <value>classpath*:com/ljh/hbm</value>    
            </list>
        </property>
    </bean>
    <bean id="userDao" class="com.ljh.dao.impl.UserDaoImpl">
        <property name="sessionFactory" ref="sessionFactory"></property>
    </bean>
    <bean id="userServiceDao" class="com.ljh.service.dao.impl.UserServiceDaoImpl">
        <property name="userDao" ref="userDao"></property>
    </bean>
</beans>

JSF配置文件1

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE faces-config PUBLIC "-//Sun Microsystems,Inc.//DTD JavaServer Faces Config 1.0//EN"
   "http://java.sun.com/dtd/web-facesconfig_1_0.dtd">
<faces-config>
    <managed-bean>
        <managed-bean-name>user</managed-bean-name>
        <managed-bean-class>
            com.ljh.backingbean.UserBackingBean
        </managed-bean-class>
        <managed-bean-scope>request</managed-bean-scope>
        <managed-property>
            <property-name>userServiceDao</property-name>
            <value>#{userServiceDao}</value>
        </managed-property>
        <managed-property>
            <property-name>userInfo</property-name>
            <value>#{userInfo}</value>
        </managed-property>
    </managed-bean>
    <managed-bean>
        <managed-bean-name>userInfo</managed-bean-name>
        <managed-bean-class>com.ljh.bean.User</managed-bean-class>
        <managed-bean-scope>request</managed-bean-scope>
    </managed-bean>
    <application>
        <variable-resolver>
            org.springframework.web.jsf.DelegatingVariableResolver
        </variable-resolver>
    </application>
</faces-config>

JSF配置文件2 faces-navigation.xml

<?xml version='1.0' encoding='UTF-8'?>
<faces-config xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd"
    version="2.0">
    <navigation-rule>
        <from-view-id>/register.jsp</from-view-id>
        <navigation-case>
            <from-outcome>failure</from-outcome>
            <to-view-id>/register.jsp</to-view-id>
        </navigation-case>
        <navigation-case>
            <from-outcome>success</from-outcome>
            <to-view-id>/welcome.jsp</to-view-id>
        </navigation-case>
    </navigation-rule>
</faces-config>

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
    http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
    <!-- Faces Servlet -->
    <servlet>
        <servlet-name>Faces Servlet</servlet-name>
        <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <!-- Faces Servlet Mapping -->
    <servlet-mapping>
        <servlet-name>Faces Servlet</servlet-name>
        <url-pattern>*.faces</url-pattern>
    </servlet-mapping>
    <context-param>
        <param-name>javax.faces.CONFIG_FILES</param-name>
        <param-value>
            /WEB-INF/faces-beans.xml,/WEB-INF/faces-navigation.xml
        </param-value>
    </context-param>
    <listener>
        <listener-class>
            org.springframework.web.context.ContextLoaderListener
        </listener-class>
    </listener>
</web-app>

注册页面 register.jsp(web根目录下)

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="h" uri="http://java.sun.com/jsf/html"%>
<%@ taglib prefix="f" uri="http://java.sun.com/jsf/core"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<f:view>
    <html>
        <head>
            <title>注册</title>
        </head>
        <body>
            <h:form>
                <h:messages style="color:red">
                    <h:outputText value="#{user.errMessage}"/>
                </h:messages>
                <hr>
                <h:panelGrid columns="2">
                    <h:outputText value="请输入用户名:" />
                    <h:inputText value="#{user.userInfo.username}" id="username"/>
                    <h:outputText value="请输入密码:" />
                    <h:inputSecret value="#{user.userInfo.password}" />
                    <h:commandButton type="submit" value="注册" actionListener="#{user.register}" action="#{user.forWard}"/>
                    <h:commandButton type="reset" value="重置" />
                </h:panelGrid>
            </h:form>
        </body>
    </html>
</f:view>

welcom.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="h" uri="http://java.sun.com/jsf/html"%>
<%@ taglib prefix="f" uri="http://java.sun.com/jsf/core"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<f:view>
    <html>
    <head>
        <title>欢迎</title>
    </head>
    <body>
        <h:form>
            <h:outputText value="欢迎"/>
            <h:outputText value="#{user.userInfo.username}"/>光临
        </h:form>        
    </body>
</html>
</f:view>


原创粉丝点击