backing bean与pagedef文件

本文介绍了如何在ADF应用中使用操作绑定来调用方法、获取属性值及迭代数据。包括无参方法调用、带参方法调用、获取属性值及访问迭代器等内容。
准备:
在faces-config对应的backing bean中加入
<managed-property>
<property-name>bindings</property-name>
<value>#{bindings}</value>
</managed-property>
 
在对应的backingbean中加入
import oracle.binding.BindingContainer;
private BindingContainer bindings;
public BindingContainer getBindings() {
return this.bindings;
}
public void setBindings(BindingContainer bindings) {
this.bindings = bindings;
}
这个时候就可以用bindings对象去访问pagedef中的东西了
一、调用binding 中的methodAction:

 在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的id
    OperationBinding oper = getBindings().getOperationBinding("querySecRolesFindAll");
    // 执行
     List rolesList 
= (List<SecRoles>)oper.execute();

带参数的方法调用:

                   //queryUserFindByUserName为methedAction的id
                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;
}

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值