天天看點

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");//擷取模闆頁面的綁定方法