<property-name>bindings</property-name>
<value>#{bindings}</value>
</managed-property>
private BindingContainer bindings;
public BindingContainer getBindings() {
return this.bindings;
}
public void setBindings(BindingContainer bindings) {
this.bindings = bindings;
}
在pagedef中binding 中添加methodAction成员,如:
<methodAction id="querySecRolesFindAll"
InstanceName="baseFacadeLocal.dataProvider"
DataControl="baseFacadeLocal"
MethodName="querySecRolesFindAll" RequiresUpdateModel="true"
Action="999" IsViewObjectMethod="false"
ReturnName="baseFacadeLocal.methodResults.baseFacadeLocal_dataProvider_querySecRolesFindAll_result"/>
提示:可以将 Data control pallete 中的一个一个方法拖至对应的页面,创建一个按钮,然后想法删除这个按钮,并且保留pagedef文件中methodAction 的定义
在bean中调用:
不带参数的方法调用:
// querySecRolesFindAll为methedAction的idList rolesList = (List<SecRoles>)oper.execute();
带参数的方法调用:
OperationBinding oper =
(OperationBinding)getBindings().getOperationBinding("queryUserFindByUserName");
//参数赋值
Map params = oper.getParamsMap();
params.put("userName", _userName);
// 执行
User user = (User)oper.execute();二、获取binding 中attributeValues属性的值
pagedef文件定义:
<attributeValues id="nationalid" IterBinding="dnationalidIterator">
<AttrNames>
<Item Value="nationalid"/>
</AttrNames>
</attributeValues>
获取值:
BindingContainer bc = getBindings();
Integer ind=null;
//获取值
Integer cod = (Integer)ADFUtils.getBoundAttributeValue(bc,"nationalid");三、访问methodIterator:
pagedef页面定义:
<methodIterator id="findAllIlxnationalIter"
Binds="findAllIlxnational.result"
DataControl="SessionEJBLixBornLocal" RangeSize="-1"
BeanClass="oracle.lixiarxeio.model.Ilxnational"/>
访问:
DCIteratorBinding dciter = (DCIteratorBinding)bc.get("findAllIlxnationalIter");
Row[] rowarray = dciter.getAllRowsInRange();
for(int i=0;i<rowarray.length;i++)...{
....
if ((Integer)rowarray.getAttribute("nationalid")==cod)
...{ ind=i;
break;
}
}
本文介绍了如何在ADF应用中使用操作绑定来调用方法、获取属性值及迭代数据。包括无参方法调用、带参方法调用、获取属性值及访问迭代器等内容。

187

被折叠的 条评论
为什么被折叠?



