Tips for using Oracle ADF (Application Development Framework)

1 篇文章 0 订阅

1. 同样的方法,写到AM的实现类里与写到ManageBean里面在调用的时候效果就不一样,还不知道具体原因。比如下面代码,

        ViewObject vo = am.findViewObject("View1");
        ViewCriteria vc = vo.createViewCriteria();
        ViewCriteriaRow vcr = vc.createViewCriteriaRow();
        vcr.setAttribute("ID", "123");
        vc.add(vcr);
        vo.applyViewCriteria(vc);
        vo.executeQuery();
        
        if (vo.getEstimatedRowCount() == 1) {
          vo.setCurrentRow(vo.first());
        }

当写到AM的实现类里时(通过AMClient Interface暴露给DataControl),调用后,当应用跳转到下一个页面(如显示View1的内容)时,页面的确显示的是View1的currentRow的内容;然而如果上面代码放到ManageBean中,则调用后应用跳转到下一个页面时,页面并没有显示选中的currentRow,而很奇怪的,显示的是View1正常结果集里面的第一条数据。


2.注意在调用如上的方法后,一定要在最后加上下面一句,否则会对后面的vo query产生影响,切记切记!

vo.applyViewCriteria(null);
Debug经验:关键code一定要一步一步的debug,不要想当然,比如下面这段code, vo.executeQuery()怎么知道返回的就是DafQAVerifyView表中全部的记录?!万一前面有个家伙没有做把ViewCriteria清空怎么办?!
        DafQAVerifyViewImpl vo = (DafQAVerifyViewImpl)findViewObject("DafQAVerifyView1");
        vo.executeQuery();        
        vo.findAndSetCurrentRowByKey(qaVerifyRow.getKey(), 0);




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值