Ajax 事件未被调用

Ajax event not being invoked

我的应用程序中的一个页面有一个 selectOneMenu 组件,其中的 Ajax 事件未被触发。我有类似的页面,具有类似的组件,可以按预期工作。 一个有效的例子:

<h:selectOneMenu value="#{debugParam.debugLevelBusiness}"
    id="debugLevelBusiness" 
    rendered="#{not (debugParam.debugLevelBusiness eq 'DEPEN')}"
    styleClass="form-control #{debugParam.debugLevelBusiness}">
    <f:selectItems value="#{manager.logLevels}"  />
    <f:ajax execute="@this" listener="#{loggingBean.businessValueChangeListener(debugParam)}" />
</h:selectOneMenu>

生成以下元素:

<select id="transactionalParameters:0:debugLevelBusiness" name="transactionalParameters:0:debugLevelBusiness" class="form-control DEBUG" size="1"
onchange="mojarra.ab(this,event,'valueChange','@this',0)">   
                <option value="OFF">OFF</option>
                <option value="ERROR">ERROR</option>
                <option value="WARN">WARN</option>
                <option value="INFO">INFO</option>
                <option value="DEBUG" selected="selected">DEBUG</option>
</select>

不起作用的组件:

<h:selectOneMenu value="#{parameter.epmsEventsLogState}"    
    id="epmsEventsLogState" 
    styleClass="form-control #{parameter.epmsEventsLogState}">
    <f:selectItem itemLabel="#{labels.enabled}" itemValue="E" />
    <f:selectItem itemLabel="#{labels.disabled}" itemValue="D" />
    <f:ajax execute="@this" listener="#{eventsLogBean.valueChangeListener(parameter)}" />
</h:selectOneMenu>

生成以下元素:

<select id="parameters:19:epmsEventsLogState" name="parameters:19:epmsEventsLogState" size="1"
    onchange="jsf.ajax.request('parameters:19:epmsEventsLogState',event,{execute:'@this ','javax.faces.behavior.event':'valueChange'})" class="form-control E">               
           <option value="E" selected="selected">Ativo</option>              
           <option value="D">Inativo</option>
</select>

注意在两个元素上生成的 javascript 的差异。 这只会在 WebSphere 9 上引起问题,它在 GlassFish 和 WildFly 上运行良好。 有谁知道可能导致此问题的原因?

很抱歉回答了我自己的问题,但我终于弄清楚了问题所在。 <h:form> 元素在 <tbody> 元素内,WebSphere 错放了生成的元素,使所有输入都在表单之外。 将 <h:form> 移动到 <table> 之外解决了问题。