[Oracle ADF] Bindings Layer - Bindings


BindingsUtils.java

https://bitbucket.org/oracle-adf/adf-utils/src/087f677cba287be7b1c3cebf038a20ed2cbff7e4/src/main/java/org/javadev/adf/utils/BindingsUtils.java


Получить программно bindings текущей страницы:

1
2
DCBindingContainer myBindingContainer = ADFUtils.getBindingContainer();
DCBindingContainer myDCBindingContainer = ADFUtils.getDCBindingContainer();


Еще вариант

1
2
3
4
5
6
7
import oracle.adf.model.BindingContext;
import oracle.binding.BindingContainer;

/*****Generic Method to get BindingContainer of current page, fragment or region**/
public BindingContainer getBindingsCont() {
    return BindingContext.getCurrent().getCurrentBindingsEntry();
}


Получить программно bindings произвольной страницы (по PageDef):


Перехожу на страницу, bindings которой хочу получить.
Далее в Bindings добираюсь до DataBindings.cpx

Захожу в исходники DataBindings.cpx и ищу по названию траницы UsageId.


1
2
// -- findBindingContainer взято из ADFUtils - там приватный метод, я не стал менять оригинальные тексты.
BindingContainer bindings = BindingsUtils.findBindingContainer(ConstantsPegeDefs.MY__PAGE_DEF);


Еще вариант


Получаю UsageId способом описанным выше.


1
    BindingContainer myBindingContainer = BindingsUtils.getBindingsContainerByPageDef(pageUsageId);


Можно почитать:
http://www.awasthiashish.com/2014/08/access-bindingcontainer-page-bindings.html


Доступ к данным и методам.

FacesContext ctx = FacesContext.getCurrentInstance();
Application app = ctx.getApplication();
ValueBinding bind = app.createValueBinding("#{bindings.DepartmentName.inputValue}");
String departmentName = (String)bind.getValue(ctx);


Примеры реализации:


Еще какие-то примеры: