由于页面流的“结束”图元仍然是开始我们创建的查询条件页面relationmgr_view0.jsp,即查询结果会和查询条件共用同一个页面,这样,就需要在查询条件页面,增加查询结果显示的代码,用来显示页面流中的返回值list。
(1) 生成ViewList代码
在资源管理器视图,展开“EOSTrippingcom.primeton.relationmgr展现页面资源”,双击打开下面的relationmgr_view0.jsp。在编辑视图的选用板中,打开【组合控件】,鼠标左键点击【ViewList】,拖拽到查询条件代码的</h:form>后面,松开鼠标,弹出“viewlist向导”对话框。在向导中点击【浏览】选择查询实体EmpQueryEntity,设置实体属性列表和表单信息,如图4-33所示。点击【完成】,系统生成对应的代码。
在图4-33中,实体属性列表是设置列表中要显示的信息。对员工ID和机构ID不需要显示出来,就可以在“显示”列中取消勾选。在“行选择方式”中默认选中“通过heckbox选择多行”,也就是在列表中会产生一列复选框用来多选,后面的“SubmitXpath”是默认设置复选框对应的数组对象名称为selectedObjects。而在“提交”列中勾选的属性就会作为这个数组对象中每个对象的属性。这部分的设置是为了方便做修改和删除操作。对应的代码是:
“表单提交逻辑”还是选择我们创建的页面流,“分页Action”选择用来做查询的query。勾选了“自动生成事件函数”,可以同步“生成自定义事件列表”中的js事件函数。
(2) 修改ViewList代码
从图4-32中可以看出,页面流中用list来接收返回值,那么就要将list在页面上显示出来。而用ViewList向导生成的代码中,默认以“小写的实体名称s”(empqueryentitys)作为迭代显示查询结果的变量,这就要用list来替换。修改后代码如下:
另外对页面流级别的变量显示需要增加“scope="flow"”,对页面流级别变量修改后代码如下:
由于查询条件和查询结果共用一个页面,程序第一次打开该页面时,并未进行查询操作,查询结果列表中不需要显示分页按钮。在上面的代码中,手工增加了<l:present property="list">……</l:present>,通过判断查询结果list是否存在来隐藏按钮。
修改好代码后,点击工具条上的保存按钮“”,保存页面,整个查询案例开发完成