天天看点

ADF 如何访问页面模块中的方法与属性

1 场景:

有一页面模板,绑定了VO中的一些方法和属性,假设此模块的a.jsf.其它页面,假设叫b.jsf引入了a.jsf模板,现在要在b.jsf页面的动作事件中拿到a.jsf中的一些属性值或方法.

2 解决思路:

如果是单纯的一个页面,我们可以通过

ADFUtils.getBoundAttributeValue("id")
           

来拿属性值,通过

ADFUtils.findOperation("Commit").execute();
           

来执行方法。但是,因为二个页面是不同的绑定空间,a页面的绑定容器是在b的绑定容器中,所以不能通过上述 的二个方法拿到模板中的绑定值.而应该先通过b绑定容器再找到a的绑定容器才能拿到值.

3 代码如果:

DCBindingContainer bindings =ADFUtils.getDCBindingContainer();//当前页面的绑定容器
                DCBindingContainer templateBinding = 
                                    (DCBindingContainer)bindings.get("ptb1");//获取模板页面的绑定容器
                AttributeBinding attributeBinding = (AttributeBinding) templateBinding.get("zj");//获取模板页面的绑定值
                OperationBinding operationbinding = (OperationBinding)templateBinding.get("operationAction");//获取模板页面的绑定方法