实体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&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>
分享到:
相关推荐
在这个“JSF简单入门例子”中,我们将深入探讨JSF的基本概念、关键组件以及如何创建一个简单的JSF应用程序。 **1. JSF基本概念** - **组件模型**:JSF的核心是组件模型,它定义了UI组件及其交互方式。组件可以是...
在这个例子中,AJAX被应用于注册页面,可能实现了即时验证用户输入,如检查用户名是否已存在,或者在提交表单前验证密码强度,减少了用户等待的时间。 **MySQL数据文件** 可能是与这个JSF登录和AJAX注册应用相关的...
在JSF生命周期的不同阶段,事件被处理并传播给已注册的监听器。监听器可以决定是否中断或继续生命周期。例如,如果监听器在处理值变化事件时发现错误,它可以调用`renderResponse()`来跳过后续的生命周期阶段,直接...
在这个例子中,"myfaces"可能指的是MyFaces实现,它是一个开源的JSF实现,提供了JSF规范所需的功能。 部署到Tomcat5.x的过程中,你需要确保Tomcat服务器已经安装并且配置了JSF支持。这通常涉及到将JSF库添加到...
在"JSF例子"这个压缩包中,可能包含了一些基础的JSF应用示例,如用户登录、注册、数据展示等场景。通过这些例子,你可以学习如何配置JSF环境,创建Managed Beans,定义Facelets页面,以及如何使用EL和AJAX功能。这将...
1. **JSF页面**:登录、注册、商品列表、购物车、订单详情等。 2. **Spring Bean**:处理用户请求、调用服务层方法、控制业务流程。 3. **Hibernate实体类**:用户、商品、订单等,对应数据库中的表。 4. **数据库...
1. **引入Shale验证库**:首先,你需要在项目中包含Shale的验证库,并在web.xml配置文件中注册Shale的行为标签库。 2. **定义验证规则**:创建一个实现`javax.faces.validator.ClientValidator`接口的类,这个类将...
9. ** Faces Servlet自动注册**:不再需要在web.xml中手动配置FacesServlet,简化了部署过程。 10. **视图范围内的bean**:除了请求、会话和应用程序范围外,JSF 2.0还引入了视图范围,适合用于管理当前用户交互的...
- 用户交互触发JSF事件,开发者可以通过注册监听器处理这些事件。 - 例如,`@HandlesEvent("action")`注解的方法可以处理特定的事件。 9. **JSF与Ajax集成** - JSF 2.0引入了Partial State Saving和Ajax支持,...
在JSF_27这个项目中,你可能会看到一个简单的登录注册示例,包括JSF页面设计、Managed Bean的编写以及简单的数据库操作。通过分析这个例子,你可以更好地理解JSF框架的实际应用。 总结:JSF框架为Java Web开发提供...
同时,鼓励读者自行尝试完成AJAX相关的例子,以加深对JSF 2.0动态更新功能的理解。 总之,JSF 2.0作为一个成熟的MVC框架,为Java Web开发提供了强大而灵活的工具。结合文档和示例代码,开发者能够系统地学习和掌握...
NetBeans将自动为你的项目配置JSF库,如jsf-impl.jar,并在classpath中添加,同时生成faces-config.xml和在web.xml中注册FacesServlet。 faces-config.xml文件控制JSF组件的行为,而web.xml部署描述符中的...
"第五章:事件与监听器"会涵盖组件间的事件传播和处理机制,以及如何注册和实现监听器。 在"第六章:导航与URL管理"中,你可以学习如何控制应用程序的导航流程,以及如何通过FacesConfig.xml配置文件来定义URL映射...
5. **配置文件**:`faces-config.xml`是JSF应用的核心配置文件,用于注册自定义组件,指定其类型和渲染器等信息。 ### 创建自定义组件的步骤 #### 第一步:实现标签库描述库 创建`ticker.tld`文件,定义自定义...
在本文中,我们将深入探讨如何使用JavaServer Faces (JSF) 创建登录页面,并结合Direct Web Remoting (DWR) 进行实时验证。当我们按下回车键时,系统应能直接执行登录操作,无需额外点击按钮。这为用户提供了一种更...
然后,在Web.xml中注册这个监听器: ```xml <listener-class>com.example.PageLoadListener</listener-class> ``` 这样,`beforePhase`和`afterPhase`方法就会在相应的JSF生命周期阶段被调用,你可以在此处执行...
在本例子中,Spring可能被用来管理JSF2和Hibernate的生命周期,以及提供数据访问对象(DAO)的抽象。Spring的IoC容器负责管理和装配应用程序的组件,使得代码更加解耦和可测试。 结合这些技术,这个入门实例可能...
在这个例子中,我们将深入探讨JSF 2.0如何实现Ajax功能,并通过详细的中文注释来辅助理解。** ### 1. JSF 2.0 的Ajax基础 Ajax(Asynchronous JavaScript and XML)允许在不刷新整个页面的情况下更新部分网页内容...