ADF从代码手动调用操作

时间:2012-04-03 10:45:38

标签: oracle-adf

我想从ActionListener按钮执行数据控制操作(CreateInsert和Delete)。我知道可以从Data Controls菜单插入一个数据控件按钮,但出于各种原因我需要这样做,一个突出的例子是我需要执行额外的运行时检查。

我找到了以下代码:

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

但不知道自己使用哪些变量。首先,我不知道应该使用哪种绑定。然后,据我所知,操作名称应该是CreateInsert,对于下一个按钮,CreateInsert1。那是什么用于UIBinding现在(我将删除)。

我想使用的数据控件是'ARNG1'。

简而言之,我需要知道如何手动调用此Data控件的CreateInsert操作。

提前致谢。

3 个答案:

答案 0 :(得分:2)

答案 1 :(得分:1)

要在actionlistener后面执行操作的代码:

        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();

答案 2 :(得分:1)

与Joe的答案类似但不使用EL Expression评估器并使用直接访问来获取BindingContainer

//获取绑定容器 BindingContainer bindings = BindingContext.getCurrent()。getCurrentBindingsEntry();

//获取Action或MethodAction
OperationBinding方法= bindings.getOperationBinding(“methodAction”);
method.execute();
列表错误= method.getErrors();