Java 在adf中隐藏显示组件

Java 在adf中隐藏显示组件,java,oracle-adf,managed-bean,Java,Oracle Adf,Managed Bean,我有3个不受数据控制的SelectOneChoice,这取决于第一个SelectOneChoice的值,其他2个SelectOneChoice应该显示和隐藏。 我在第一个SelectOneChoice中使用了manged bean和valueChangeListener来根据选择隐藏和显示其他2个SelectOneChoice,在其他2个SelectOneChoice中使用了partial,但它不起作用 这是第一个SelectOneChoice <af:selectOneChoice la

我有3个不受数据控制的SelectOneChoice,这取决于第一个SelectOneChoice的值,其他2个SelectOneChoice应该显示和隐藏。 我在第一个SelectOneChoice中使用了manged bean和valueChangeListener来根据选择隐藏和显示其他2个SelectOneChoice,在其他2个SelectOneChoice中使用了partial,但它不起作用

这是第一个SelectOneChoice

<af:selectOneChoice label="acnt type"  id="soc10"  valueChangeListener="#{backingBeanScope.JasperBean.hideShowAccounts}"
              autoSubmit="true" required="true" contentStyle="width:118px">
           <af:selectItem label="Cultural Division Accounts" value="CA" id="si12"/>
           <af:selectItem label="Students Accounts" value="SA" id="si13"/>
</af:selectOneChoice>
 <af:selectOneChoice label="bb"
    valueChangeListener="#{backingBeanScope.JasperBean.storeAccount}"
        id="soc11" autoSubmit="true" partialTriggers="soc10">
      <af:selectItem label="Select Account" value="-1" id="si220"/>
      <f:selectItems value="#{backingBeanScope.JasperBean.accounts}" id="si1"/>
 </af:selectOneChoice>

 <af:selectOneChoice label="aa"
             valueChangeListener="#{backingBeanScope.JasperBean.storeAccount}"
                id="soc12" autoSubmit="true" 
   partialTriggers="soc10"
            rendered="#{backingBeanScope.JasperBean.saShown}">
       <af:selectItem label="Select Account" value="-1" id="si221"/>
       <f:selectItems value="#{backingBeanScope.JasperBean.studentAccounts}"  id="si121"/>
</af:selectOneChoice>

如果可以使用javascript完成,请告诉我如何在托管bean中完成,这不是必需的,有两步解决方案:

为selectOneChoice组件添加valuePassThru=true

添加valueChangeEvent.getComponent.processUpdatesFacesContext.getCurrentInstance;作为值中的第一行,更改侦听器代码


有关详细信息,请参阅

是否尝试放置valueChangeEvent.getComponent.processUpdatesFacesContext.getCurrentInstance‌​; 作为托管bean代码的第一行?此外,我在you page源代码中没有看到这两个LOV的绑定引用。
    public void hideShowAccounts(ValueChangeEvent valueChangeEvent) {

    if(valueChangeEvent.getNewValue().toString().equals("CA"))
    {            

        ddlCAaccounts.setRendered(true);
        ddlSAaccounts.setRendered(false);
    }
    else if(valueChangeEvent.getNewValue().toString().equals("SA"))
    {

        ddlCAaccounts.setRendered(false);
        ddlSAaccounts.setRendered(true);
    }

}