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