我使用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
有人知道如何解决这个问题吗?
答案 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
命名空间,无需添加虚拟标记!