2016-07-11 8 views
0

ich ein Problem bin vor Ajax in JSF 2.0 ZusammenhangAjaxRenderKitFactory blockiert AJAX in meinem Web-Projekt

Wir haben 2 Webprojekte (WARs) in derselben EAR. das erste Projekt, das folgende in den Gesichtern-config.xml

<factory> 

    <faces-context-factory> 

     com.ibm.faces.context.AjaxFacesContextFactory 

    </faces-context-factory> 

    <render-kit-factory> 

     com.ibm.faces.renderkit.AjaxRenderKitFactory 

    </render-kit-factory> 

</factory> 

Aus irgendeinem Grund hat, die com.ibm.faces.renderkit.AjaxRenderKitFactory ist Ajax in der anderen Web-Projekt zu blockieren, wenn ich diese entfernt Abschnitt, Ajax funktioniert gut. hier

ich von Ajax meine, das Rendering für

<h:form> 
     <h:selectOneMenu value="#{myBean.selected}"> 
      <f:selectItem itemValue="#{null}" itemLabel="ABC" /> 
      <f:selectItem itemValue="one" /> 
      <f:selectItem itemValue="two" /> 
      <f:selectItem itemValue="three" /> 
      <f:ajax listener="#{myBean.listener}" render="result" /> 
     </h:selectOneMenu> 

     <h:outputText id="result" value="#{myBean.selected} #{myBean.result}" /> 

aber die folgende adaequat

 <h:commandButton value="commandButton" action="#{myBean.submit}"> 
      <f:ajax listener="#{myBean.listener}" render="result" /> 
     </h:commandButton> 

     <h:outputText id="result" value="#{myBean.selected} #{myBean.result}" /> 

ich nicht mit dieser com.ibm.faces.renderkit.AjaxRenderKitFactory in meine faces-config Warum beeinflusst es Ajax in meinem Projekt?

Antwort

2

Die com.ibm.faces.renderkit.AjaxRenderKitFactory wurde entwickelt, um Ajax-Unterstützung in jurassischen JSF 1.x-Versionen zu ermöglichen, die keine integrierte Ajax-Unterstützung hatten.

Seit JSF 2.0 (Dez 2009) hat JSF eine integrierte Ajax-Unterstützung mit dem neuen Tag <f:ajax> bekommen. Daher werden externe Ajax-Bibliotheken, die für JSF 1.x entwickelt wurden, wie die von IBM, unnötig und sie würden möglicherweise sogar in Konflikt geraten, wenn Sie konfrontiert werden.

Entfernen Sie es einfach zusammen. In JSF 2.x und neuer benötigen Sie keine externen Bibliotheken, um ajax zu verwenden. Darüber hinaus sollten Sie alle JSF 1.x-Komponentenbibliotheken auf eine JSF 2.x-kompatible aktualisieren.

Verwandte Themen