Eine der Seiten aus meiner Anwendung hat eine selectOneMenu-Komponente mit einem Ajax-Ereignis, das nicht ausgelöst wird. Ich habe ähnliche Seiten mit ähnlichen Komponenten, die wie erwartet funktionieren. Ein Beispiel, das funktioniert:Ajax-Ereignis wird nicht aufgerufen
<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>
Erzeugt das folgende Element:
<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>
Die Komponente, die nicht funktioniert:
<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>
Erzeugt das folgende Element:
<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>
Beachten Sie den Unterschied auf dem generierten Javascript für beide Elemente. Dies verursacht nur ein Problem in WebSphere 9, es funktioniert gut auf GlassFish und WildFly. Weiß jemand, was das Problem verursachen könnte?
Die automatische Beantwortung ist bei Stack Overflow akzeptabel, daher ist keine Entschuldigung erforderlich. ;) – Haxiel