Грешка в браузъра: PrimeFacesExt не е дефиниран

Използвам PrimeFaces 3.5 с PrimeFaces Extensions 0.7.0 и OmniFaces версия 1.4

Имам acordionPanel с ui:fragment, който изглежда така:

<html xmlns="http://www.w3.org/1999/xhtml" xmlns:f="http://java.sun.com/jsf/core" xmlns:h="http://java.sun.com/jsf/html"
    xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:p="http://primefaces.org/ui"
    xmlns:pe="http://primefaces.org/ui/extensions"> 
<ui:fragment>

    <f:metadata>
        <f:event type="javax.faces.event.PreRenderViewEvent" listener="#{fleet.preRenderView()}" />
    </f:metadata>

    <!-- Other things.... -->

    <!-- Dialogs -->
    <p:dialog id="createSubFleetDialog" widgetVar="createSubFleet"
        header="#{msg.administration_fleet_createFleetDialog_title}">
        <h:panelGrid id="createSubFleetPanel" columns="2">

            <!-- Here im using primefaces extensions -->

            <h:outputLabel for="newFleetName" value="#{msg.administration_fleet_fleetName}" />
            <p:inputText id="newFleetName" value="#{fleet.fleetName}">
                <pe:keyFilter mask="alphanum"></pe:keyFilter>
            </p:inputText>

        </h:panelGrid>
    </p:dialog>


</ui:fragment>
</html>

Няма предупреждение или грешка в eclipse, но при стартиране на приложението ми има грешка в браузъра: Uncaught ReferenceError: PrimeFacesExt не е дефиниран

Някой знае ли как да поправя този проблем?


person Gatschet    schedule 20.02.2014    source източник
comment
Имам същия проблем тук с ext 2.1 и 3.0, имам pe:inputNumber, разбрахте ли какъв е проблемът?   -  person Al-Mothafar    schedule 16.11.2014


Отговори (2)


Имах същия проблем, но намерих работещо решение за него в тази връзка: http://forum.primefaces.org/viewtopic.php?f=14&t=36652

Изглежда проблемът е:

Изглежда, че primefaces ext js файловете не се зареждат, освен ако не използваме поне един ext таг.

Тъй като не използвах такъв на главната страница...но беше в динамичен ui:include, той се зареждаше само след твърдо опресняване на главната страница.

Така че можете да добавите фиктивен pe маркер във вашия основен шаблон точно след <h:body> по този начин:

<pe:blockUI></pe:blockUI>

Или като:

<pe:inputNumber style="display:none" />

Всъщност работи за мен.

person Al-Mothafar    schedule 16.11.2014

Изправени пред този проблем, открихме, че по-чиста корекция е просто да добавим този ред в маркера <h:head> в основния шаблон:

<h:outputScript library="primefaces-extensions" name="primefaces-extensions.js"/>

Няма нужда да добавяте пространството от имена xmlns:pe, няма нужда да добавяте фиктивен етикет!

person papyreno    schedule 05.01.2016