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");//获取模板页面的绑定方法