powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / ADF как в Java методе вызвать DataControl
9 сообщений из 9, страница 1 из 1
ADF как в Java методе вызвать DataControl
    #38125044
MikTar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день!
Пришлось начать работать с ADF. Много чего не понятного, и в Java я не особенно скиловый.
На уровне Model в AM создана функция возвращающая некоторое значение. На основе класса AM создан DataControl содержащий эту функцию. Теперь в проекте ViewController создаю Java-класс в котором мне надо вызвать ту самую функцию в виде DataControl или метода Java из AM. Может кто делал подобное и может привести примеры?
...
Рейтинг: 0 / 0
ADF как в Java методе вызвать DataControl
    #38125140
irbis_al
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MikTar,
Вообще примеры в инете смотреть надо Andrejus Baranovskis's Blog
Я иам много взял.
Твоё решение где-то лежит в плоскости


В методе

DCBindingContainer bc = (DCBindingContainer)this.getBindings();

OperationBinding operationBinding = bc.getOperationBinding("твой метод");

Object result =operationBinding.execute();

------------------

public BindingContainer getBindings() {

if (this.bindings == null) {

FacesContext fc = FacesContext.getCurrentInstance();

this.bindings = (BindingContainer)fc.getApplication().evaluateExpressionGet(fc, "#{bindings}", BindingContainer.class);

}

return this.bindings;

}



А очень часто если правильно организовать adf-task-flow то adf сам вызывает нужные методы без backed beena
...
Рейтинг: 0 / 0
ADF как в Java методе вызвать DataControl
    #38126793
MikTar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я уже смотрел блог Барановскиса. По аналогии попробовал написать свой код, проблема в том, что возвращается ошибка: NullPointerError, а эта ошибка, судя по описанию, может быть от чего угодно (
Вот сам код метода:
private String getCookieTextFromOracle()
{

String sResult = "";

BindingContext bCtx = BindingContext.getCurrent();
DCBindingContainer DcCon = (DCBindingContainer)bCtx.getCurrentBindingsEntry();
// Note "initEmpView" is the Id of actionMethod binding in PageDefinition
OperationBinding oper = DcCon.getOperationBinding("callStoredFunctionNEW_SESSION");
//If a method has a parameters you can pass it through the below method
// oper.getParamsMap().put("Param1Name", "Param1Value");
// oper.getParamsMap().put("Param2Name", "Param2Value");
//Execute a method
oper.execute();
//Check for error after executing the method
if (oper.getErrors().size() > 0) {
//It has errors
//Handle an errors here
}
Object operationResult = oper.getResult();
if (operationResult != null) {
// operationResult is an instance of anonymous inner class
// which (fortunatly) implements an Iterator interface
Iterator result = (Iterator)operationResult;

// Only single result item is expected,contaning a single column
while (result.hasNext()) {
Map map = (Map)result.next();
// Get feeling analyzer response
sResult = (String)map.get("Column0");
}
}
return sResult;
}
...
Рейтинг: 0 / 0
ADF как в Java методе вызвать DataControl
    #38126796
MOHAX777
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MikTar По аналогии попробовал написать свой код, проблема в том, что возвращается ошибка: NullPointerError, а эта ошибка, судя по описанию, может быть от чего угодно

Ну так посмотрите стэк ошибок, там будет видно, в каком месте возникает NullPointerError
...
Рейтинг: 0 / 0
ADF как в Java методе вызвать DataControl
    #38127221
MikTar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пришлось прибиндить DataControl к страничке и тогда только заработало без ошибок. А можно вызвать функция Java созданную на уровне Model в классе Java на уровне ViewController? Или это можно сделать только через создание DataControl и прибиндивание его к страничке?
...
Рейтинг: 0 / 0
ADF как в Java методе вызвать DataControl
    #38127229
MOHAX777
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MikTarПришлось прибиндить DataControl к страничке и тогда только заработало без ошибок. А можно вызвать функция Java созданную на уровне Model в классе Java на уровне ViewController? Или это можно сделать только через создание DataControl и прибиндивание его к страничке?

Можно, конечно, создать AM "на лету" и вызвать напрямую. Только непонятно, зачем.
...
Рейтинг: 0 / 0
ADF как в Java методе вызвать DataControl
    #38128539
MikTar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MOHAX777, я имел в виду возможность из функции Java "слоя" ViewController вызвать функцию Java из "слоя" Model? Я пробовал прописать Import в классе Java, но что-то не получилось. Эти два слоя (DataControl и Model) напрямую не связаны, нужны посредники в виде прибиндивания и создания DataControl?
Необходимость мне кажется сама напрашивается, создается приложение для работы с БД, нужно постоянно дергать пакеты Оракла, получать какую-то информацию и использовать ее в "слое" ViewController.
...
Рейтинг: 0 / 0
ADF как в Java методе вызвать DataControl
    #38128703
irbis_al
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MikTar,

Привет.
На мой взгяд философия ADF и состоит в том,что ты биндишь AM биндишь ViewIbject и методы AM ,а в
FacesContex их находишь по именам.

Ну если очень неймётся можно сделать преобразразование в твой класс AM

http://docs.oracle.com/cd/E17904_01/web.1111/b31974/bcservices.htm#BABBDDHH
...
Рейтинг: 0 / 0
ADF как в Java методе вызвать DataControl
    #38130105
MOHAX777
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MikTarMOHAX777, я имел в виду возможность из функции Java "слоя" ViewController вызвать функцию Java из "слоя" Model?
Функции из "слоёв" не вызываются. Вызываются функции классов, находящихся в проекте Model. Всё зависит от того, какие именно функции вы хотите вызывать. Если функции из Application Module Implementation, то да вызывать их напрямуй бессмысленно из-за логики реализации AM. Но никто не мешает вызывать функции из вашего класса, реализующего "утилитарный" функционал.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / ADF как в Java методе вызвать DataControl
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]