我使用的是Oracle ADF JDev 12.1.3
我有一个自定义声明的LOV组件和一个自定义方法"valueChangeEvent",在用户从弹出窗口中选择一些值后,我将做一些验证,如果所有的验证都是ok的,那么我需要引发"valueChangeEvent“事件,以便在最终的jspx页面中可以实现额外的逻辑。
我的声明性组件方法定义如下
<method-attribute>
<attribute-name>
valueChangeListener
</attribute-name>
<method-signature>
java.lang.Void method(javax.faces.event.ValueChangeEvent)
</method-signature>
<required>
false
</required>
</method-attribute>在我的自定义LOV组件中,我有一个输入文本和按钮,我尝试在命令按钮操作中调用我的自定义方法,但它没有调用主窗体中的事件,也没有显示错误
// get the component reference using Face Context ValueExpression
_this = getThisDeclarativeCompoent();
//try to queue the valueChangeEvent - but this does not work
_this.queueEvent(new ValueChangeEvent(_this, NewValue, OldValue));使用应用程序代码如下所示
<af:declarativeComponent viewId="/ASGLOVBrowser.jspx" id="dc3" label="Modules" LOV_Name="MODULE"
bindingAttribute="#{bindings.ModuleId}" showDescription="true"
multiSelect="false" matchingField="CODE"
valueChangeListener="#{viewScope.DeclarativeTestBean.test_valueChangeEvent}"/>如果有人能帮上忙我会很感激。
发布于 2015-05-10 20:09:43
值更改事件仅在输入值更改时由框架引发,因此如果不从UI或以编程方式更改值,则无法启动事件。
因此,您可以获取输入文本UIComponent的引用并以编程方式更改该值:
RichInputText uiComp = <<<get reference>>>;
uiComp.setValue(newValue);https://stackoverflow.com/questions/30102731
复制相似问题