1、该部分可以由Custom Control文件(*.jcs), Java Control文件(*.jcx), Web Service文件(*.jws)或Process文件(*.jpd)等文件装配而成。视图(View V)由*.jsp等文件来实现控制器(Controller C)由Java Page Flow文件(*.jpf )来实现关于Page flow的更多信息请参考dev2dev中文站点上的这篇文档:BEA Workshop8.1之Java Page Flow介绍 by Doug Dew,Java Page Flow项目经理建立Pageflow我们在上一章中建好的EJBTest项目上继续We
2、b应用的开发,右键点击EJBTest项目,选择new一个Page Flow在Design View中将index.jsp页面删除,只留下Begin按钮,然后将myControl控件的finderByCompanyName方法拓展到Design View中,它将在这个Pageflow中成为一个带Form Bean的action, 同时这个Form Bean也显示在Form Beans选项版中(Form Bean是Page Flow中的数据的承载体,其一个作用是用于页面中的form提交时存储form中的数据,其实质是一个Java Bean)右键点击刚生成的action,选择Generate Inp
3、ut Page选项,Workshop将根据你action的Form Bean的参数,自动生成一个输入页面finderByCompanyNamePage.jsp。我们调整一下它们的位置,并且从Begin节点拉一条连接线,使得Begin开始后的Page Flow走到finderByCompanyNamePage.jsp页面。这个Page Flow开始后将走到一个输入页面finderByCompanyNamePage.jsp,让你输入finderByCompanyName需要的数据,获得数据后,将到action中处理。EJB控件myControl的finderByCompanyName()方法返回的
4、是一个EJB对象的引用,我们对其做部分处理,使得它能返回Company中的全部信息(NO及COMPANY_NAME),在PageFlow中传递数据的方法有很多中比如用Request、Session、FormBean等等进行数据的传递,在本例中我们为这个Pageflow增加两个Public的String型变量 sNO、sCompanyName用来承载COMPANY信息。关于PageFlow的传值的更多相关信息请读者阅读相关文档: dev2dev中文站点的 数据绑定101 这篇文档 Workshop联机帮助文档 Developing Web Applications Guide to Buildi
5、ng Page Flows Using Data Binding in Page Flows部分 (在Workshop中按F1出联机文档,或是直接访问 然后在Pageflow中,双击节点,进入Source View编辑器,更改finderByCompanyName()方法,将myControl.finderByCompanyName()方法的返回的Company NO和Company Name赋值给相应的变量。public class InvokeEJBPFController extends PageFlowController/* This is the control used to g
6、enerate this pageflow* common:control*/private TEJB myControl; public String sNO;public String sCompanyName;.* jpf:actionforward name=success path=showCompanyInfo.jspprotected Forward finderByCompanyName(FinderByCompanyNameForm form)SIMPLEEJB.Simple_ex sBean;try sBean=myControl.finderByCompanyName(%
7、+form.getArg0()+);this.sNO= sBean.getCompanyId();this.sCompanyName=sBean.getCompanyName(); catch(Throwable t) t.printStackTrace();return new Forward( );action处理完后我们需要一个页面把这个处理结果显示出来,所以,从Pallete面板中拖拽出一个page到设计视图中,并命名为双击这个showCompanyInfo.jsp页面,进入这个页面的编辑界面,我们需要对其加入部分定制代码段来显示出finderByCompanyName处理的结果。1.
8、 删除默认jsp页面上的文字;2. 从选项板中拖拽表格到空白的jsp页面上,设置表格属性为4行2列;3. 使用表导航器合并表头,和表尾;4. 往表的6个表格中拖拽入Label标签 5. 对上诉table中的label值在属性编辑器中设定,由上至下,由左至右设定成:Company InfoNO:pageFlow.sNOCompany Name:pageFlow.sCompanyNamepageFlow.sNO是一段表达式,pageFlow代表了对这个jsp所处的Page Flow对象的引用,是这个对象的一个属性值,这对大括号的作用的是表明pageFlow.sNO应当做为一个表达式来处理,而不是做
9、为一个值来被直接显示。6. 对这个JSP页面加上返回连接,使得点击后它能返回主页面,通过拖拽的方式从Anchor标签到设计视图中,如下图设置属性,定位方式选中调用某个操作,文本属性是这个标签的显示文字return,操作属性的意思是这个标签会调用Page Flow中的那个操作,我们选择begin,表明调用Page Flow开始节点。7. 点击保存,回到Page Flow页面,我们运行这个Page Flow进行测试。Page Flow的相互调用在Workshop中开发Page Flow的相互调用也很简单,在接下来的创建Create Company Page Flow的过程中将为读者演示Page F
10、low调用的开发。1. 右键点击EJBTest项目,选择新建页面流,然后起名为CreateCompany,删除无用的index.jsp,只留下Begin节点,然后将TEJB.jcx控件从应用程序面板中拖拽到Design View中数据选项板tEJB控件的create方法到设计视图中来,它将生成一个action,再右键点击这个action,选择生成输入页,入下图 3. 将节点和新生成的createPage.jsp页面间联线关联起来。然后再把我们刚建立好的Page Flow InvokeEJBPFController.jpf给拖拽进这个Page Flow中来,如下图 4. 右键点击新拖拽进入的In
11、vokeEJBPF节点,选择生成调用操作,再从节点和页面节点上拉出连线链接到新的show_invokeEJBPF节点上,如下图5. 页面出现红色波浪线表明该页面上有错误,这个错误其实是因为我们还没有在页面上加连接到节点上的连接,所以报错,因而我们需要修改createPage.jsp页面,往其中加一个Return Home按钮,使其能返回主页面。6. 再看这个CreateCompanyController.jpf,一切都ok,我们可以运行并测试它。该EJB剩下的两个方法(FinderByNO()方法和FinderAll()方法)请读者自己练习,最后做成的Page Flow如下:源码参见本文附的下载包。小结笔者期望读者通过本文的阅读及练习能够入门在BEA WebLogic Workshop上的Web App应用开发。在下一篇使用笔记中,作者将给大家介绍如何用Workshop开发一个调用该PageFlow的Portal应用,敬请关注。相关源文件请点击此处下载
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1