AjaxRenderKitFactory блокирует AJAX в моем веб-проекте

Я столкнулся с проблемой, связанной с Ajax в JSF 2.0

У нас есть 2 веб-проекта (WAR) в одном EAR. первый проект имеет следующее в face-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>

По какой-то причине com.ibm.faces.renderkit.AjaxRenderKitFactory блокирует ajax в другом веб-проекте. Если я удалил этот раздел, ajax работает нормально.

Я имею в виду здесь Ajax, рендеринг для

    <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}" />

но следующее работает нормально

        <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}" />

У меня нет этого com.ibm.faces.renderkit.AjaxRenderKitFactory в моем лице-конфигурации, так почему это влияет на Ajax в моем проекте?

1 ответ

com.ibm.faces.renderkit.AjaxRenderKitFactory разработан для включения поддержки ajax в версиях JSF 1.x, которые не имеют встроенной поддержки ajax.

Начиная с JSF 2.0 (декабрь 2009 г.), JSF получил встроенную поддержку AJAX с новым <f:ajax> тег. Поэтому внешние библиотеки ajax, разработанные для JSF 1.x, такие как библиотеки IBM, становятся ненужными, и они могут даже конфликтовать, как вы столкнулись.

Просто удалите это полностью. В JSF 2.x и новее вам не нужны внешние библиотеки для использования ajax. Более того, вы должны обновить любые библиотеки компонентов JSF 1.x до JSF 2.x-совместимой.

Другие вопросы по тегам