JSF、Hibernate、Spring和Oracle ADF Faces (Apache Trinidad)演示项目

 

背景

ADF Faces组件是ORACLE公司扩展的一套完整的JSF组件,使JSF开发的UI工作变得更加方便、牢固和统一。但ADF Faces系列包括了100多个组件,如何使用这些组件?ADF Faces除了组件还带了什么新的特征?ORACLE公司为了阐明这些问题,制作了一个称为SRDEMO的项目,并以此项目为蓝本撰写了”Oracle Application Development Framework Developer Guide”文档,作为Oracle ADF框架的使用手册。

原始的SRDEMO项目使用EJB 3.0和声明式数据绑定(基于JSR 227)技术,而这两个技术在目前的开发中使用并不广泛,且声明式数据绑定是ORACLE公司的实现的私有产品。为了更方便大家的学习,对原始的SRDEMO项目进行了改造。

大家在继续学习以前,请先阅读一下” Oracle Application Development Framework Developer Guide”文档Part I的第2章,以期能够对原始的SRDEMO项目有大概的了解。

附件项目是用ORACLE的JDEVELOPER 10.1.3.3建立的,你在打开的时候也需要这个工具。ORACLE JDEVELOPER是免费提供的,信息及下载地址是:http://www.oracle.com/technology/products/jdev/index.html

主要更改

对原始的SRDEMO的主要更改包括以下几个方面:

1.       数据库和数据库访问。原始的SRDEMO项目基于ORACLE数据库建立,使用TOPLINK技术来访问数据库。改造后的项目基于hsqldb嵌入式数据库,使用hibernate 3作为数据库访问接口。为了更好地实现事务的支持,将hibernate与流行的spring 2进行了集成,使用了spring 2的声明式事务管理和DAO访问支持。

2.       业务逻辑封装。上面提到,原始的SRDEMO项目用EJB 3.0的无状态BEAN来实现业务逻辑,改造的项目使用了普通的JAVA BEAN来实现业务逻辑。基于普通JAVA BEAN的业务实现代码的接口与原始的EJB 3.0完全一致。

3.       页面展示。原始的SRDEMO程序使用声明式数据绑定技术来实现后台数据与前台页面的共享,改造的项目去除了声明式数据绑定,直接使用标准的JSF数据绑定技术。

4.       其它更改。其它的更改比较多,例如使用LazyList来实现数据的延时加载;修改了默认的Oracle样式表,使之更符合中文的习惯;使用动态的页面对象绑定技术实现了页面的模板化。实现了SimpleValueHolder接口和GenericTreeNode类,用于值的回存和恢复以及ADF Faces Tree组件的节点支持。

<o:p> </o:p>

以下“项目”指改造后的SRDemoSample项目。<o:p></o:p>

项目总体架构

<o:p> </o:p>

项目的运行架构可分为后台数据管理和前台UI展示两个部分。

后台数据管理的功能主要通过两个Service来实现,分别是代表管理功能的SRAdminService和代表公开功能的SRPublicService。这两个ServiceSpring所管理。Spring同时还管理Hibernate对数据库的访问。后台数据管理中,因数据访问较为简单,故未使用单独的DAO层,而是把DAO功能融合到Service中了。

Spring的管理范围仅在后台数据管理,前台UI展示中未使用。BeanLocator起到了桥梁的作用,使前台UIManaged Bean能够得到Service的实例。

页面展示除登录页面外,全部使用最新基于XMLJSP格式:JSPXJSPX与传统的JSP相比,最大的特点是完全用XML来描述页面的内容,绝不出现HTML的代码。

附件3和附件4请见:http://hunte.iteye.com/admin/show/123559

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值