1、-配置JSF-context-param javax.faces.CONFIG_FILESparam-value/WEB-INF/faces-config.xml/context-param-Spring配置文件地址-contextConfigLocation/WEB-INF/classes/applicationContext.xmljavax.faces.STATE_SAVING_METHODclientfacelets.LIBRARIES指定facelets支持的后缀javax.faces.DEFAULT_SUFFIX.xhtmlfilterdisplay-nameAjax4jsf Fi
2、lterfilter-nameajax4jsffilter-classorg.ajax4jsf.Filter/filterfilter-mappingservlet-nameFaces ServletdispatcherREQUESTFORWARDINCLUDEJSF支持-servletservlet-classjavax.faces.webapp.FacesServletload-on-startup1/servletservlet-mappingurl-pattern*.faces/servlet-mapping组件支持-为正确使用tomahawk组件包而配置extensionsFilte
3、rorg.apache.myfaces.webapp.filter.ExtensionsFilter uploadMaxFileSize10muploadThresholdSize100/faces/*applicationlocale-configdefault-localezh_CN/locale-configview-handlercom.sun.facelets.FaceletViewHandler/applicationJSF与Spring集成-variable-resolver org.springframework.web.jsf.DelegatingVariableResolv
4、er/variable-resolver再加入facelets框架的标签支持包,整个环境包大致如下图所示:4. 上面的配置好了,JSF和Spring就集成起来了。下面我们加入JPA支持,并且将JPA和Spring集成起来。首先加入persistence.xml文件,内容如下:?xml version=1.0 encoding=UTF-8persistence xmlns= xmlns:xsi=http:/www.w3.org/2001/XMLSchema-instance xsi:schemaLocation= version=persistence-unit name=JSJDemoPU t
5、ransaction-type=RESOURCE_LOCALproviderorg.hibernate.ejb.HibernatePersistenceclasstest.vo.Testproperties - Hibernate 方言(只有Hibernate 才需要设置) -property name=hibernate.dialect value=org.hibernate.dialect.MySQLDialect /- Hibernate 显示调试 SQL -hibernate.show_sql value=true - Hibernate 格式化sql -hibernate.forma
6、t_sqlhibernate.hbm2ddl.autoupdate/properties/persistence-unit/persistence之后建立一个值对象,代码如下:package mangerTeam.vo;import java.io.Serializable;import java.util.Set;import javax.persistence.Basic;import javax.persistence.CascadeType;import javax.persistence.Column;import javax.persistence.Entity;import ja
7、vax.persistence.FetchType;import javax.persistence.GeneratedValue;import javax.persistence.GenerationType;import javax.persistence.Id;import javax.persistence.JoinColumn;import javax.persistence.JoinTable;import javax.persistence.Lob;import javax.persistence.ManyToMany;import javax.persistence.ManyT
8、oOne;import javax.persistence.Table;/* * 运动员实体 * * author 刘岩 */EntityTable(name = player)public class PlayersVO implements Serializable Id GeneratedValue(strategy = GenerationType.AUTO) Column(name = id, unique = true, nullable = false) private Integer id;name private String name; ManyToOne(optional
9、=true, fetch = FetchType.LAZY) JoinColumn(name = teamId private TeamVO teamVO; ManyToOne(fetch = FetchType.LAZY) JoinColumn(nullable=false,name = nationalityId private NationalityVO nationalityVO; Lob Basic(fetch = FetchType.LAZY)pic private byte pic;mess private String mess; ManyToMany(cascade = Ca
10、scadeType.REFRESH, fetch = FetchType.LAZY) JoinTable(name = plays_position, joinColumns = JoinColumn(name = playerId) , inverseJoinColumns = JoinColumn(name = positionId) ) private Set positions; public Integer getId() return id; public void setId(Integer id) this.id = id; public String getName() re
11、turn name; public void setName(String name) this.name = name; public Set getPositions() return positions; public void setPositions(Set positions) this.positions = positions; public TeamVO getTeamVO() return teamVO; public void setTeamVO(TeamVO teamVO) this.teamVO = teamVO; public NationalityVO getNa
12、tionalityVO() return nationalityVO; public void setNationalityVO(NationalityVO nationalityVO) this.nationalityVO = nationalityVO; public byte getPic() return pic; public void setPic(byte pic) this.pic = pic; public String getMess() return mess; public void setMess(String mess) this.mess = mess;之后写DA
13、O,无论你是用IDE生成的DAO还是自己写的DAO,代码大致如下:package mangerTeam.dao;import java.util.HashMap;import java.util.List;import javax.persistence.EntityManager;import javax.persistence.PersistenceException;import javax.persistence.Query;import mangerTeam.vo.PlayersVO;import org.springframework.context.ApplicationCont
14、ext;import org.springframework.orm.jpa.JpaCallback;import org.springframework.orm.jpa.support.JpaDaoSupport;import org.springframework.transaction.annotation.Transactional;Transactionalpublic class PlayerDAO extends JpaDaoSupport implements IPlayerDAO / property constants public static final String
15、NAME = ; public static final String MESS = public static final String PIC = public void save(PlayersVO entity) logger.info(saving Player instance); try getJpaTemplate().persist(entity); logger.info(save successful catch (RuntimeException re) logger.error(save failed, re); throw re; public void delet
16、e(PlayersVO entity) deleting Player instance entity = getJpaTemplate().getReference(PlayersVO.class, entity.getId(); getJpaTemplate().remove(entity);delete successfuldelete failed public PlayersVO update(PlayersVO entity) updating Player instance PlayersVO result = getJpaTemplate().merge(entity);upd
17、ate successful return result;update failed public PlayersVO findById(Integer id) finding Player instance with id: + id); PlayersVO instance = getJpaTemplate().find(PlayersVO.class, id); return instance;find failed SuppressWarnings(unchecked public List findByProperty(String propertyName, final Objec
18、t value, final int. rowStartIdxAndCount) finding Player instance with property: + propertyName + , value: + value); final String queryString = select model from PlayersVO model where model. + propertyName + = :propertyValue return getJpaTemplate().executeFind(new JpaCallback() public Object doInJpa(EntityManager em) throws PersistenceException Query query = em.createQuery(queryString); query.setParameter(, value); if (rowStartIdxAndCount != null & rowStartIdxAndCount.length 0) / 有分页 int rowStartIdx = Math.max(0, rowStartIdxAndCount0); / 开始页 if (rowStartIdx
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1