2012-04-03 3 views
1

auf Ich möchte eine Datensteuerungsoperation (CreateInsert und Delete) vom ActionListener-Button ausführen. Ich bin mir bewusst, dass eine Datensteuerungsschaltfläche aus dem Datensteuerungsmenü eingefügt werden kann, aber aus verschiedenen Gründen muss ich dies auf diese Weise tun, wobei eine herausragende Aufgabe darin besteht, zusätzliche Laufzeitprüfungen durchzuführen.ADF Rufen Sie den Vorgang manuell über den Code

fand ich den folgenden Code:

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

aber nicht wissen, welche Variablen für mich zu verwenden. Vor allem weiß ich nicht, welche Bindung ich verwenden soll. Dann sollte der Operationsname, soweit ich weiß, CreateInsert und für die nächste Schaltfläche CreateInsert1 sein. Das ist was für UIBinding jetzt verwendet (die ich entfernen werde).

Die Datensteuerung, die ich verwenden möchte, ist 'ARNG1'.

Kurz gesagt, ich muss wissen, wie diese CreateInsert-Operation des Datensteuerelements manuell aufgerufen wird.

Vielen Dank im Voraus.

Antwort

1
+0

Ein anderes sehr nützliches Video, aber das tut ziemlich viel anderes. Ich habe bereits eine Operation Schaltfläche, ich möchte keine weitere Operation hinzufügen, aber eine Operation aus dem Code ausführen. Ich werde dann stattdessen eine ungebundene Schaltfläche verwenden, damit ich meine eigene benutzerdefinierte Validierung zuerst ausführen kann. Danke trotzdem! –

+0

In dem Video sehen Sie, wie JDev den Code zum Aufrufen der Operation für Sie in einer Backing-Bean erstellt. Tun Sie das, und dann können Sie die Schaltfläche von der Seite entfernen und den Code weiterhin in Ihrer Backing-Bean verfügbar haben. Sie können diesen Code dann von einer anderen Methode in Ihrer Bean aufrufen, die mit einer neuen hinzugefügten Schaltfläche verknüpft ist. –

+0

* slaphead * Vielen Dank Mann, half mir sehr gut :). –

1

der Code Sie eine Operation hinter einem Action ausführen wollen:

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

Ähnlich wie Joe Antwort aber nicht EL Ausdrucksauswerter verwenden und verwendet die direkte Zugriff stattdessen, um den BindingContainer zu erhalten

// Get-Bindungs-Container BindingContainer Bindings = BindingContext.getCurrent(). getCurrentBindingsEntry();

// eine Aktion oder MethodAction erhalten
OperationBinding method = bindings.getOperationBinding ("methodAction");
method.execute();
Liste Fehler = method.getErrors();