我想从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操作。
提前致谢。
答案 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();