首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >adf声明性组件自定义方法queueEvent()不起作用

adf声明性组件自定义方法queueEvent()不起作用
EN

Stack Overflow用户
提问于 2015-05-07 21:36:11
回答 1查看 1.2K关注 0票数 1

我使用的是Oracle ADF JDev 12.1.3

我有一个自定义声明的LOV组件和一个自定义方法"valueChangeEvent",在用户从弹出窗口中选择一些值后,我将做一些验证,如果所有的验证都是ok的,那么我需要引发"valueChangeEvent“事件,以便在最终的jspx页面中可以实现额外的逻辑。

我的声明性组件方法定义如下

代码语言:javascript
复制
           <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组件中,我有一个输入文本和按钮,我尝试在命令按钮操作中调用我的自定义方法,但它没有调用主窗体中的事件,也没有显示错误

代码语言:javascript
复制
// 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));

使用应用程序代码如下所示

代码语言:javascript
复制
<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}"/>

如果有人能帮上忙我会很感激。

EN

回答 1

Stack Overflow用户

发布于 2015-05-10 20:09:43

值更改事件仅在输入值更改时由框架引发,因此如果不从UI或以编程方式更改值,则无法启动事件。

因此,您可以获取输入文本UIComponent的引用并以编程方式更改该值:

代码语言:javascript
复制
RichInputText uiComp = <<<get reference>>>;
uiComp.setValue(newValue);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30102731

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档