Html Ajax侦听器无法识别动态填充的SelectOneMenu SelectItems

Html Ajax侦听器无法识别动态填充的SelectOneMenu SelectItems,html,ajax,primefaces,javabeans,Html,Ajax,Primefaces,Javabeans,我有一个Primefaces SelectOne菜单,有两个选项(邮件或报告)。选择其中一项后,我会用相应的数据更新另一个SelectOne菜单。为此,我在bean中使用ajax和一个函数,效果很好。当第二个SelectOne菜单中的一个项目被选中时,我想用一些数据填充Primeface文本编辑器和InputText。与第一个SelectOneMenu类似,我使用了一个ajax监听器,它从我的bean中调用一个函数。问题在于,在选择第二个SelectOne菜单中的动态填充项时,不会调用函数(ha

我有一个Primefaces SelectOne菜单,有两个选项(邮件或报告)。选择其中一项后,我会用相应的数据更新另一个SelectOne菜单。为此,我在bean中使用ajax和一个函数,效果很好。当第二个SelectOne菜单中的一个项目被选中时,我想用一些数据填充Primeface文本编辑器和InputText。与第一个SelectOneMenu类似,我使用了一个ajax监听器,它从我的bean中调用一个函数。问题在于,在选择第二个SelectOne菜单中的动态填充项时,不会调用函数(handleSelect),但在单击此SelectItem时会调用该函数

<f:selectItem itemLabel="Select One" itemValue="" />

这让我相信,第二个SelectOneMenu可能不会将动态填充的项确认为SelectItem

或者它可能与初始加载有关,或者更确切地说,是在运行时填充第二个SelectOneMenu时加载

这里是我的Html代码

第一选择功能表

<h:form>
        <p:outputLabel for="@next" value=""  />                                            
        <p:selectOneMenu>
        <f:selectItem itemLabel="Select one" itemValue=""/>
        <f:selectItem itemLabel="Mail Template" itemValue="Mail Template"/>
        <f:selectItem itemLabel="Report Template" itemValue="Report Template"/>
        <p:ajax event="itemSelect" update="selectTemplateForm:templateMenu, selectTemplateForm" listener="#{templateBean.mailOrReportHandler}"/> 
        </p:selectOneMenu>
</h:form>
<h:form id="selectTemplateForm">
    <p:outputLabel for="@next" value=""  />
    <p:selectOneMenu id="templateMenu" filter="true" filterMatchMode="contains" value="mailTemplateBean.text">
    <f:selectItem itemLabel="Select One" itemValue="" />
    <f:selectItems value="#{templateBean.templateSelectItemList}"/>
    <p:ajax event="itemSelect" update="editorForm:textEditor, editorForm:titleField" listener="#{templateBean.handleSelect}"/>
    </p:selectOneMenu>
</h:form>

第二选择菜单

<h:form>
        <p:outputLabel for="@next" value=""  />                                            
        <p:selectOneMenu>
        <f:selectItem itemLabel="Select one" itemValue=""/>
        <f:selectItem itemLabel="Mail Template" itemValue="Mail Template"/>
        <f:selectItem itemLabel="Report Template" itemValue="Report Template"/>
        <p:ajax event="itemSelect" update="selectTemplateForm:templateMenu, selectTemplateForm" listener="#{templateBean.mailOrReportHandler}"/> 
        </p:selectOneMenu>
</h:form>
<h:form id="selectTemplateForm">
    <p:outputLabel for="@next" value=""  />
    <p:selectOneMenu id="templateMenu" filter="true" filterMatchMode="contains" value="mailTemplateBean.text">
    <f:selectItem itemLabel="Select One" itemValue="" />
    <f:selectItems value="#{templateBean.templateSelectItemList}"/>
    <p:ajax event="itemSelect" update="editorForm:textEditor, editorForm:titleField" listener="#{templateBean.handleSelect}"/>
    </p:selectOneMenu>
</h:form>

editorForm是标记的id,其中

 <p:textEditor id="textEditor"> 

<p:inputText id="titleField"/> 

位于

我应该补充一点,只要我只使用第二个SelectOne菜单和最初加载的SelectItems,填充这些字段就可以了

感谢您的帮助