浏览器错误:未定义PrimeFacesExt

时间:2014-02-20 10:21:44

标签: java jsf primefaces primefaces-extensions

我使用PrimeFaces 3.5和PrimeFaces Extensions 0.7.0和OmniFaces 1.4版

我有一个带有ui的accordionPanel:片段女巫看起来像那样:

<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中没有警告或错误,但在运行我的应用程序时出现浏览器错误: 未捕获的ReferenceError:未定义PrimeFacesExt

有人知道如何解决这个问题吗?

2 个答案:

答案 0 :(得分:5)

我遇到了同样的问题,但我在此链接中找到了解决方法:http://forum.primefaces.org/viewtopic.php?f=14&t=36652

似乎问题是:

  

除非我们至少使用,否则似乎没有加载extfaces ext js文件   一个分机标记。

     

因为我没有在主页上使用它..但它是动态的   ui:include,它只是在主页刷新后才加载。

因此,您可以在<h:body>之后的主模板中添加虚拟pe标记:

<pe:blockUI></pe:blockUI>

或者喜欢:

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

它实际上对我有用。

答案 1 :(得分:2)

面对此问题,我们发现更简洁的解决方法是在主模板的<h:head>标记中添加此行:

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

无需添加xmlns:pe命名空间,无需添加虚拟标记!