ImageVerifierCode 换一换
格式:DOCX , 页数:22 ,大小:57.38KB ,
资源ID:8496364      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8496364.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(JSF+Spring+JPAHibernate实现的环境搭建.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

JSF+Spring+JPAHibernate实现的环境搭建.docx

1、JSF+Spring+JPAHibernate实现的环境搭建写之前的感受刘岩 先说好的,文章后再说缺点。JSF+Spring+JPA以我个人看来,应该说是Struts2+Spring+Hibernate的替代解决方案。引入JPA去取代或者说包装或者说是升级Hibernate是为了符合JAVA EE的规范,达到ORM统一的结果。下次项目用EJB也好、用TOPLINK也好、用ibatis也罢,我们的开发人员代价会很小。在目前很多项目来说,引入此规范,能更好的代码复用,持久层和控制层相当于进一步的解耦合了,你只需要开启项目之前好好地建立领域模型。那么用JSF取代Struts2或者更早一点的Strut

2、s1又是为何!答案依然是,它是规范。是符合某些标准的规范。不是说Struts2不好,这个因项目而定才行。我个人还是比较推崇apache的Struts2的,当然了,apache的JSF实现和JSF组件也是相当地杠杠的!JSF更贴近事件比较多的web前端处理机制。想想我们一般要接收和处理页面的各种事件是用什么:js函数+ajax处理是吧(Flex我没有接触过,不知道它是怎么样的处理前后台交互的)。JSF可以采用事件监听机制,控件(JSF里面叫做控件)被触发了某些时间,直接优雅的和POJO进行了交互,配合ajax4jsf,处理大量的控件的事件是很简洁方便的。言归正传,开始。1. 首先利用IDE建立一

3、个Web项目2. 加入相应的jar包,注意:所有的开源框架都是加入jar包的时候最麻烦,尤其加入了Spring,搞不好就他妈的启动服务的时候报错。我已经将相应需要的jar包放到了csdn上面共享了,网址是3. web项目加入JSF支持修改web.xml,加入如下内容 org.springframework.web.context.ContextLoaderListener javax.faces.CONFIG_FILES /WEB-INF/faces-config.xml contextConfigLocation /WEB-INF/classes/applicationContext.xml

4、 javax.faces.STATE_SAVING_METHOD client facelets.LIBRARIES /WEB-INF/facelets/tags/arcmind.taglib.xml;/WEB-INF/tomahawk.taglib.xml 指定facelets支持的后缀 javax.faces.DEFAULT_SUFFIX .xhtml Ajax4jsf Filter ajax4jsf org.ajax4jsf.Filter ajax4jsf Faces Servlet REQUEST FORWARD INCLUDE Faces Servlet javax.faces.we

5、bapp.FacesServlet 1 Faces Servlet *.faces 为正确使用tomahawk组件包而配置 extensionsFilter org.apache.myfaces.webapp.filter.ExtensionsFilter uploadMaxFileSize 10m uploadThresholdSize 100 extensionsFilter *.faces extensionsFilter /faces/*在WEB-INF下面加入jsf_core.tld、html_basic.tld和tomahawk.taglib.xml文件、新建一个faces-con

6、fig.xml文件,内容配置如下: zh_CN com.sun.facelets.FaceletViewHandler org.springframework.web.jsf.DelegatingVariableResolver 再加入facelets框架的标签支持包,整个环境包大致如下图所示:4. 上面的配置好了,JSF和Spring就集成起来了。下面我们加入JPA支持,并且将JPA和Spring集成起来。首先加入persistence.xml文件,内容如下: org.hibernate.ejb.HibernatePersistence test.vo.Test 之后建立一个值对象,代码如下

7、: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 javax.persistence.FetchType;import javax.persistence.GeneratedValue;import javax.persiste

8、nce.GenerationType;import javax.persistence.Id;import javax.persistence.JoinColumn;import javax.persistence.JoinTable;import javax.persistence.Lob;import javax.persistence.ManyToMany;import javax.persistence.ManyToOne;import javax.persistence.Table;/* * 运动员实体 * * author 刘岩 */EntityTable(name = playe

9、r)public class PlayersVO implements Serializable Id GeneratedValue(strategy = GenerationType.AUTO) Column(name = id, unique = true, nullable = false) private Integer id; Column(name = name) private String name; ManyToOne(optional=true, fetch = FetchType.LAZY) JoinColumn(name = teamId) private TeamVO

10、 teamVO; ManyToOne(fetch = FetchType.LAZY) JoinColumn(nullable=false,name = nationalityId) private NationalityVO nationalityVO; Lob Basic(fetch = FetchType.LAZY) Column(name = pic) private byte pic; Lob Basic(fetch = FetchType.LAZY) Column(name = mess) private String mess; ManyToMany(cascade = Casca

11、deType.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() retur

12、n 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 getNatio

13、nalityVO() 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; 之后写DAO,

14、无论你是用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.ApplicationContex

15、t;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 NA

16、ME = name; public static final String MESS = mess; public static final String PIC = 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; pu

17、blic void delete(PlayersVO entity) logger.info(deleting Player instance); try entity = getJpaTemplate().getReference(PlayersVO.class, entity.getId(); getJpaTemplate().remove(entity); logger.info(delete successful); catch (RuntimeException re) logger.error(delete failed, re); throw re; public Players

18、VO update(PlayersVO entity) logger.info(updating Player instance); try PlayersVO result = getJpaTemplate().merge(entity); logger.info(update successful); return result; catch (RuntimeException re) logger.error(update failed, re); throw re; public PlayersVO findById(Integer id) logger.info(finding Pl

19、ayer instance with id: + id); try PlayersVO instance = getJpaTemplate().find(PlayersVO.class, id); return instance; catch (RuntimeException re) logger.error(find failed, re); throw re; SuppressWarnings(unchecked) public List findByProperty(String propertyName, final Object value, final int. rowStart

20、IdxAndCount) logger.info(finding Player instance with property: + propertyName + , value: + value); try 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(propertyValue, value); if (rowStartIdxAndCount != null & rowStartIdxAndCount.length 0) / 有分页 int rowStartIdx = Math.max(0, rowStartIdxAndCount0); / 开始页 if (rowStartIdx

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1