ADF вызывает операцию вручную из кода - PullRequest
1 голос
/ 03 апреля 2012

Я хочу выполнить операцию управления данными (CreateInsert и Delete) с помощью кнопок ActionListener.Я знаю, что кнопка управления данными может быть вставлена ​​из меню «Элементы управления данными», но по разным причинам мне нужно сделать это таким образом, выдающимся из которых является необходимость выполнения дополнительных проверок во время выполнения.

Я обнаружил следующееcode:

      OperationBinding operation = bindings.getOperationBinding("operation_name");
      operation.getParamsMap().put("parameter_name", parameterValue);
      operation.execute();

Но не знаю, какие переменные использовать для себя.Прежде всего, я не знаю, какое связывание мне следует использовать.Затем, насколько я знаю, имя операции должно быть CreateInsert, а для следующей кнопки - CreateInsert1.Вот что сейчас используется для привязки UIB (которую я удалю).

Элемент управления данными, который я хочу использовать, - это «ARNG1».

Короче говоря, мне нужно знать, каквручную вызвать операцию CreateInsert этого элемента управления данными.

Заранее спасибо.

Ответы [ 3 ]

2 голосов
/ 03 апреля 2012

Посмотрите, поможет ли это вам: https://blogs.oracle.com/shay/entry/doing_two_declarative_operatio

1 голос
/ 04 апреля 2012

Аналогичен ответу Джо, но не использует анализатор выражений EL и вместо этого использует прямой доступ для получения BindingContainer

// Получение контейнера привязки BindingContainer bindings = BindingContext.getCurrent (). GetCurrentBindingsEntry ();

// получить Action или MethodAction
OperationBinding method = bindings.getOperationBinding ("methodAction");
method.execute ();
Список ошибок = method.getErrors ();

1 голос
/ 04 апреля 2012

код, который вы хотите выполнить за слежением за действием:

        public BindingContainer getBindings() {
          if (this.bindings == null) {
              FacesContext fc = FacesContext.getCurrentInstance();
              this.bindings = (BindingContainer)fc.getApplication().
                  evaluateExpressionGet(fc, "#{bindings}", BindingContainer.class);
          }
          return this.bindings;
      }

BindingContainer bindings = getBindings();
    OperationBinding operationBinding =
    bindings.getOperationBinding("doQueryResultReset");
    operationBinding.execute();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...