Oracle_ADF_Login实例

上传人:枫** 文档编号:563084416 上传时间:2022-11-18 格式:DOC 页数:54 大小:4.73MB
返回 下载 相关 举报
Oracle_ADF_Login实例_第1页
第1页 / 共54页
Oracle_ADF_Login实例_第2页
第2页 / 共54页
Oracle_ADF_Login实例_第3页
第3页 / 共54页
Oracle_ADF_Login实例_第4页
第4页 / 共54页
Oracle_ADF_Login实例_第5页
第5页 / 共54页
点击查看更多>>
资源描述

《Oracle_ADF_Login实例》由会员分享,可在线阅读,更多相关《Oracle_ADF_Login实例(54页珍藏版)》请在金锄头文库上搜索。

1、ADF应用程序样例本文档写的内容基础,大侠勿批,新手勿嫌,专门针对不想看英文文档的筒子们在开始写样例之前,先简单的了解一些ADF框架的基本知识ADF框架简要说明一、 ADF的架构ADF也是用的MVC的分层模式,如下图所示:Model层代理数据服务将数据关联在View层,用户则是在View层的UI界面上的操作来更改Model层代理的数据,Controller控制层执行用户的输入和控制页面的导航, business service则是负责处理数据访问和封装业务逻辑。下面为详细图解:二、 ADF的业务组件(ADF BC)1. Entity object(EO)EO代表了数据库表中的一行,它简化了你通

2、过DML来处理的数据操作,EO是允许重复在项目中使用的。2. View object(VO)VO就是单纯的操作通过SQL查询出来结果集,你可以在里面使用所有的SQL语言,如果想通过对VO的操作来影响数据库的话,则VO必须关联EO。3. Application module(AM)简单的说AM就是VO或者可能是其它AM的容器,也管理事务。通过AM可以拿到已经关联上的VO的实例。ADF应用实例下面通过写一个简单的样例应用,来理解ADF框架。1. FilenewGeneralApplicationsFusion Web Application(ADF)2. Application 名称3. 模型层工

3、程4. 设置model层默认包名5. 设置viewController名称及默认包名6. 这时,我们可以在工程结构图中看到如下图所示的一个ADF应用Adfc-config.xml可用于注册manageBean及管理无界界面流,现在不理解不要紧,后面会有说明的。7. 应用已经搭建起来了, 接下来要做的则是创建应用的ADF BC(业务组件)了。8. 选择ADF Business ComponentsBusiness Components from Tables9. 接下来便弹出创建Business Components的向导,点击“+”10. 创建一个数据库连接11. 选择刚刚创建的数据库连接,点

4、击OK12. 进入创建EO对话框,修改包名,点击Query查询出数据库中所有的table,然后选择Dept及Emp两张表,点击“”将两张表拖至右边。13. 可以修改对应EO的名称,我在相应EO后面加上了EO字样。14. 进入创建可更改VO页面,修改包名,将两个EO点击“”选择上15. 修改VO的名称16. 此为创建只读VO界面,我们在这先不做详细介绍,直接next17. 创建AM18. 此为生成对应的业务组件设计图,在此也不做详细介绍19. 在此页面可以检查相关的将要创建的业务组件信息,然后点击finish.20. 这时我们可以看到DemoApp应用的DemoModle中便出现了刚才创建的那些

5、业务组件,并且在DataControls里头也显示了相应的VO。21. 现在我们就基于DemoApp来做几个最简单的增,删,改,查。做这些操作则是都使用ADF已经给我们提供好的一些操作及方法,这些方法都在Data Controls中的VO中22. 创建一个JSPX页面,这里简单提一下,jsff和jspx页面都是ADF框架基于jsf页面的拓展页面23. 对新创建的页面进行命名,然后将*.jspx左侧的复选框选择上24. 简单分析一下TestDemoPage1.jspx如上图所示,一个jspx页面必须包含rootviewdocument form等标签25. 我们将Data Controls中的D

6、eptVO1拖入至页面中,创建一个ADF Table26. 创建ADF Table选项27. 点击OK后,我们将会看到,页面上自动生成了标签及里面有对应的等标签,而且在对应的viewController工程的默认包下自动生成了DataBindings.cpx文件及在pageDefs包下生成了对应TestDemoPage1.jspx对应的页面定义文件28. 到现在为止,我们做的应用可以说已经告一小段落了,我们运行一下TestDemoPage1.jspx页面看看效果。29. 你可以发现,现在的VO仅仅支持查询及修改功能,接下来我们给他添加上添加及修改的功能,将button拖放到页面30. 将but

7、ton改名为创建,然后将DeptVO1中option目录下的createInsert方法拖放至button上31. 代码便自动生成为下图所示32. 创建功能至此就完成了,从右边的组件面板中再拖一个commandButton至创建按钮的下方,改名为删除。33. 将DeptVO1中的删除功能拖放至删除按扭中34. 点击OK,则会出现如下代码,然后我们再次运行TestDemoPage1.jspx35. 可看到运行效果图示如下,当我们点击创建按钮的时候,会在选择中那一行的上方,创建一条空记录,并且将空记录也变成了选择中的状态,然后我们便可以在其中输入需要的数据了。36. 然后我们再选择Deptno为9

8、9的那一行,再点击删除按钮37. 会发现数据则被删除了,这时,其实存在着一个问题,你可以去数据库中查询对应的Dept表,在这里顺便讲一下在Jdeveloper中怎么连接数据库和操作数据库,在Jdeveloper中使用DataBase Navigator进行查看38. 打开后能在这看到所有应用程序的数据库连接39. 打开连接,会多一个名为DemoApp的文件,在这文件里你可以书写任何SQL语句40. 我们这只查看Dept表中的数据,可以在以上文件中写SQL,也可以双击Dept表,我们会发现,Dept表中并没有我们刚才加入的Deptno为21的数据,并且Deptno为99的数据还存在于数据库中。造

9、成这个问题的原因很简单,那是因为我们刚才的那些对DeptVO1的操作都还只是存在于缓存当中,并还未真正将事务提交,所以数据未持久化到数据库中。41. 解决这个问题的办法很简单,我们只需要通过AM将事务提交则可。创建提交按钮,将AM下Operations下的commit操作与按钮关联42. 代码如下图所示:43. 再次运行TestDemoPage1.jspx页面,在没进行任何操作之前,我们会发现提交按钮是灰色的44. 现在我们将Deptno为99的记录删除,删除后发现提交按钮变为可操作按钮了:45. 点击提交按钮,再查看数据库,我们会发现Deptno为99号的则没有了46. 至此,一个最简单基本

10、的增、删、改查的最简单样例了。我们会发现,一点代码都没写,就完成了,是不是会觉得ADF功能封装的强大,只是简单的拖拖拽拽就完成了对数据库表的基本操作。47. 接下来我们再以代码的形式写一个用户登陆样例,首选分别创建login.jspx及error.jspx两个页面48. 然后打开login.jspx页面,开始制作一个简单的登入页面,分别拖入页面两个,并将其label属性改成用户名及密码,再拖入一个Button作为登入按钮,改名为登入49. 这样的话登入页面的前台显示的内容就简单的完成了,再看error.jspx页面,我们就加入一个简单的outputText来显示一条信息50. 然后将其valu

11、e改成相应内容,并设置这个组件的inlinStyle属性为显示红色51. 然后我们打开pageFlows目录下的adfc-config文件52. 将login.jspx,error.jspx和TestDemoPage1.jspx都拖入adfc-config文件中53. 然后再使用Control flow case将login.jspx与error.jspx连接起来,54. 再将login.jspx与TestDemoPage1.jspx连接起来55. 在ADF中,我们叫在adfc-config文件中的jspx页面的导航为无界限的界面流,一个项目中有且只有一个。后面会常用的task flow内的页

12、面导航则称为有界限的界面流,在项目中允许出现多个,并且是允许重复利用的。在这先不作详细介绍。56. 接下来我们再打开login.jspx,将鼠标光标点在commandButton代码中的任意一个位置,再看中对应commandButton的action属性,填入success 57. 运行login.jspx页面,查看效果,当我们点击登入的时候,页面将会跳转到TestDemoPage1.jspx页面中58. 当然,这是最简单的一个页面跳转的例子,真正的登入页面是不可能这么简单的,我们需要给页面加入用户验证,加入用户的登入验证功能则是需要在java代码中做一些简单的业务逻辑处理了,那如何让页面与j

13、ava代码进行关联上呢,这里则需要引入一个managebean的概念了,首先我们得先了解,什么是managebean,59. 参考链接:http:/218.57.204.54:81/forum.php?mod=viewthread&tid=11&extra=page%3D160. 了解了相关managebean的概念后,我们便开始创建对应jspx页面的managebean吧,首先我们需要创建一个java类,名为LoginBean61. 如果不修改包名的话则java类是生成在默认包下的62. 此时java类只是一个单纯的java类,并未将其注册进入adfc-config文件中,只有将其注册到ad

14、fc-config文件后,他才是一个managebean,注册managebean的话需要先打开adfc-config文件的overview视图状态,再选择managebean标签属性63. 点击添加按钮后输入相应注册managebean的信息第一列为给managebean命名,第二列则是指定managebean的类,第三列则为managebean的作用域,相关managebean作用域的参考资料可以查看如下网站,http:/218.57.204.54:81/forum.php?mod=viewthread&tid=18&extra=page%3D1或者参考官方说明文档,64. 只要manag

15、ebean在adfc-config文件中注册成功之后,我们在页面中便可以任意使用了,首先我们先将login页面,将两个输入框进行组件邦定,就是将login页面中的两个输入框分别邦定在managebean中,即与managebean中的属性关联上,65. 我们会发现,用户名的input框中的binding属性出现了如图所示效果#viewScope.loginBean.usernameviewScope是指managebean的作用域,loginBean是managebean的名称,username则是我们刚才创建的input框对应在managebean中的属性,由此我们可以知道,在managebean中肯定是创建了一个叫做username的属性,66. 我们可以打开loginBean对应的java类进行查看,可以看到多了username的属性及对应的get/set方法,并且

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号