打开“查询页面”relationmgr_view0.jsp,在ViewList向导生成的代码后面增加“新增机构和员工”按钮,按钮的触发事件仿照ViewList生成代码中“新增”按钮的执行脚本。需要增加的代码如下:
(2) 创建新增页面
选中页面流中“新增页面”,鼠标右键,在弹出菜单中选择“生成jsp页面”,系统将在“EOSTrippingcom.primeton.relationmgr展现页面资源”路径下自动创建“relationmgr_view1.jsp”。并在构件编辑视图中自动打开。
(3) 生成DataForm代码
系统会默认在jsp页面中生成一个form,同样在这里删掉整个form,其余部分保留。新增代码可以利用EOS中的DataForm控件来生成。
打开jsp页面编辑器上的选用板,在【组合控件】下面,鼠标左键点击【DataForm】不松开,拖拽到页面上需要写代码的位置,松开鼠标,弹出“DataForm向导”,在向导中通过【浏览】选择机构实体Org,设置录入字段和表单信息,对Org的主键orgid不应该手工录入,在字段列表中选中后点击右上角的按钮“”删除。如图4-45所示。点击【完成】,系统在jsp页面中生成对应的代码。
“提交数据变量名称”是设置显示及提交的数据xpath,默认是小写的实体名称。我们这里做的是新增操作,表示页面上新增的机构信息orgcode,
orgname,orgleader都会作为org下面的子节点提交。
(4) 生成DataCell代码
EOS6提供了DataCell控件,可以在一个table里实现增删改查的功能。我们就可以使用DataCell控件来增加多条员工信息。根据需求,机构信息和员工信息要同时保存,那么我们就把DataCell生成的代码放在DataForm生成的代码中。
打开jsp页面编辑器上的选用板,在【Ajax控件】下面,鼠标左键点击【DataCell】不松开,拖拽到页面“<tr class="form_bottom">”代码之前,即将DataCell放在保存和返回按钮的前面,松开鼠标,弹出DataCell控件的向导,设置各参数如图4-46所示。
在图4-46中,“ID”是DataCell控件的唯一标识,在一个页面内必须唯一。
“提交数据的XPath”是定义提交的数据根节点的xpath。本例中机构和员工是1对N的关系,在机构org实体中有员工的对象数组emps这个属性,如图4-16所示。这里写“org/emps”表示将“DataCell列设置”中的属性作为org/emps的子节点(注意:emps一定要跟org实体中的员工这个对象数组的属性名称一致)。
“查询逻辑”是用来设置查询数据使用的业务逻辑,这里只是用来做新增,不需要设置,而且是和DataForm中的数据一起提交,通过DataForm产生的【保存】按钮完成,所以“提交逻辑”也不需要设置。
点击第三个【浏览】按钮,弹出“选择一个数据实体”的对话框,我们选择员工实体Emp,选择后Emp的属性会自动显示在下面的“DataCell列设”中,同样对主键empid和外键orgid不进行维护,选中后点击右上角按钮“”删除。对“性别”我们点击右上角的“”,在“属性配置”对话框中去掉
nullLabel的值“--请选择--”,保证在新增信息时,性别的下拉列表中都是可选项。
“DataCell工具条设置”可以设置工具条的位置以及有哪些工具按钮。点击该栏中的【浏览】,弹出“DataCell自定义工具条”对话框,由于只做新增操作,我们设置的工具条如图4-47所示。点击【确定】,完成自定义工作条设置。
最后点击图4-46中的【完成】,在鼠标拖拽的地放生成DataCell代码。
(5) 修改页面代码
EOS的控件帮助我们生成了基本的代码,提高了开发效率,接下来我们只需要修改【保存】按钮的触发事件,使DataCell中的数据能和DataForm中的数据一起提交即可。在页面</head>标签之前增加下面的代码:
(6) 页面提交参数与页面流绑定
对复杂类型的数据进行提交,EOS6的绑定规则是:http参数名称作为xpath,该xpath中的第一段的名称和Action参数名称相同。前面我们设置机构信息的提交数据的xpath是org,员工信息的提交数据的xpath是org/emps,那么根据绑定规则,只需要定义Action参数名称为org即可。
打开页面流relationmgr.flowx,图4-44所示,双击“新增页面”的后续Action连线“insert”,设置输入参数,如图4-48所示。
点击【确定】,完成参数设置。点击EOS Studio工具条上的保存按钮“”,保存新增页面和页面流。