4

我将 PrimeFaces 3.5 与 PrimeFaces Extensions 0.7.0 和 OmniFaces 1.4 版一起使用

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

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

4

2 回答 2

5

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

似乎问题是:

除非我们至少使用一个 ext 标签,否则似乎不会加载 primefaces ext js 文件。

由于我没有在主页上使用它..但它在动态 ui:include 中,它仅在主页硬刷新后才加载。

所以你可以像这样在你的主模板中添加虚拟 pe 标签<h:body>

<pe:blockUI></pe:blockUI>

或喜欢:

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

它实际上对我有用。

于 2014-11-16T11:03:28.473 回答
2

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

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

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

于 2016-01-05T17:05:25.583 回答