2016-07-21 4 views
0

내 응용 프로그램의 페이지 중 하나에는 트리거되지 않는 Ajax 이벤트가있는 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> 

작동하지 않는 구성 요소 :

<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> 
:

<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> 

는 다음과 같은 요소를 생성합니다

두 요소에서 생성 된 javascript의 차이점을 확인하십시오. 이것은 WebSphere 9에서만 문제를 일으키고 있으며 GlassFish 및 WildFly에서 잘 작동합니다. 문제를 일으킨 원인을 알고있는 사람이 있습니까?

답변

0

나는 내 자신의 질문에 대해 사과 드린다. 그러나 나는 마침내 문제가 무엇인지 알아 냈다. <h:form> 요소는 <tbody> 요소 안에 있고 WebSphere는 생성 된 요소를 잘못 배치하여 모든 입력을 양식 외부에 놓습니다. <h:form><table> 외부로 이동하면 문제가 해결됩니다.

+0

셀프 응답은 스택 오버플로에서 허용되므로 사과 할 필요가 없습니다. ;) – Haxiel