(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();
}
}
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 >
<! 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;
}
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();
}
}
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;
}
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);
}
}
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;
}
}
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;
}
}
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 >
< 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 >
<% @ 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" alt ="注册成功!" />
< h2 >
< h:outputText id ="result"
value ="#{InfoBean.response}" /></ h2 >
< h:commandButton id ="back"
value ="返回" action ="su" />
< p >
</ h:form >
</ f:view >
</ html >
<% @ 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" 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" alt ="注册失败!" />
< h2 >
< h:outputText id ="result"
value ="#{InfoBean.response}" /></ h2 >
< h:commandButton id ="back"
value ="返回" action ="su" />
< p >
</ h:form >
</ f:view >
</ html >
<% @ 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" 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 >
< 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 >
<! 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 >
<! 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>
原文地址http://www.cnblogs.com/hashmap/articles/2162435.html