这个Page Flow开始后将走到一个输入页面finderByCompanyNamePage.jsp,让你输入finderByCompanyName需要的数据,获得数据后,将到"finderByCompanyName"action中处理。
EJB控件myControl的finderByCompanyName()方法返回的是一个EJB对象的引用,我们对其做部分处理,使得它能返回Company中的全部信息("NO"及"COMPANY_NAME"),在PageFlow中传递数据的方法有很多中比如用Request、Session、FormBean等等进行数据的传递,在本例中我们为这个Pageflow增加两个Public的String型变量 "sNO"、"sCompanyName"用来承载"COMPANY"信息。
关于PageFlow的传值的更多相关信息请读者阅读相关文档:
1.dev2dev中文站点的 《数据绑定101》 这篇文档
2.Workshop联机帮助文档 Developing Web Applications à Guide to Building Page Flows à Using Data Binding in Page Flows部分 (在Workshop中按F1出联机文档,或是直接访问ttp://edocs.bea.com/workshop/docs81/doc/en/core/index.html)
然后在Pageflow中,双击"finderByCompanyName"节点,进入"Source View"编辑器,更改finderByCompanyName()方法,将myControl.finderByCompanyName()方法的返回的Company NO和Company Name赋值给相应的变量。
public class InvokeEJBPFController extends PageFlowController
{
/**
* This is the control used to generate this pageflow
* @common:control
*/
private TEJB myControl;
public String sNO;
public String sCompanyName;
……….
/**
* @jpf:action
* @jpf:forward name="success" path="showCompanyInfo.jsp"
*/
protected Forward finderByCompanyName(FinderByCompanyNameForm form)
{
SIMPLEEJB.Simple_ex sBean;
try
{
sBean=myControl.finderByCompanyName("%"+form.getArg0()+"%");
this.sNO= sBean.getCompanyId();
this.sCompanyName=sBean.getCompanyName();
}
catch(Throwable t)
{
t.printStackTrace();
}
return new Forward( "success" );
}
"finderByCompanyName"action处理完后我们需要一个页面把这个处理结果显示出来,所以,从"Pallete"面板中拖拽出一个"page"到设计视图中,并命名为"showCompanyInfo.jsp" 