使用ui包含页面的Primefaces,jquery问题:包含在p:tabview中

时间:2012-04-26 09:21:44

标签: jsf-2 primefaces

我构建了一个JSF 2.1.2页面,其中包含各种主要组件,如p:calendar,p:selectOneMenu ... 这个页面工作正常。 但是: 我需要将第一页在p:tab元素中的另一页中与p:TabView父级集成: 像这样:

<p:tabView id="tabview">
 <p:tab title="User admin">
  <ui:include src="firstPage.xhtml" />
 </p:tab>
</p:TabView>

问题:primefaces组件不再起作用(没有显示p:calendar for example),我得到很多错误,如jQuery缺少firebug:

$(this.jqId + " ul").sortable is not a function
[Stopper sur une erreur]    

...d+" .ui-picklist-target-controls .ui-picklist-button-move-up").click(function(){...

primef...mefaces (ligne 27)
$(this.jqId + " ul").sortable is not a function
[Stopper sur une erreur]    

...d+" .ui-picklist-target-controls .ui-picklist-button-move-up").click(function(){...

.....

感谢您的帮助。 克里斯托弗。

1 个答案:

答案 0 :(得分:2)

确保HTML输出在语法上有效。如果firstPage.xhtml表示完整的<html>页面,那么当您将其用作另一个<html>页面中的包含文件时,这将失败,因为嵌套<html><head><body>标记是非法的。

您需要从<html><head><body>中删除所有firstPage.xhtml代码,以便它真正代表唯一的标签内容。 E.g。

<ui:composition
    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"
>
    <p>This is the tab content.</p>
</ui:composition>