Java (JSF2.0)primefaces数据表组件的问题。

Java (JSF2.0)primefaces数据表组件的问题。,java,jsf,browser,jakarta-ee,jsf-2,Java,Jsf,Browser,Jakarta Ee,Jsf 2,我只想使用分页功能创建一个简单的datatable,但我有两个问题: 1-显示数据,但浏览器中不显示分页器(我尝试了IE和chrome) 2-在google chrome中,paginator仍然没有显示,而且每次刷新时我都会看到一些额外的对话框: 这是否意味着primefaces与chrome不兼容 ------------------------更新1------------------------------ 以下是保留页的外观: <ui:composition templat

我只想使用分页功能创建一个简单的datatable,但我有两个问题:

1-显示数据,但浏览器中不显示分页器(我尝试了IE和chrome)


2-在google chrome中,paginator仍然没有显示,而且每次刷新时我都会看到一些额外的对话框:

这是否意味着primefaces与chrome不兼容

------------------------更新1------------------------------

以下是保留页的外观:

<ui:composition template="WEB-INF/templates/BasicTemplate.xhtml">
<ui:define name="resultsForm">
<h:form enctype="multipart/form-data">
    <h:inputText id="search" value="" /><h:commandButton value="search"/>
    <h:selectOneRadio id="searchFilter" value="" >
            <f:selectItem id="r1" itemLabel="text documents(.pdf, .docx ...)" />
            <f:selectItem id="r2" itemLabel="audio(.mp3,.wav...)" />
            <f:selectItem id="r3" itemLabel="multimedia(.mpeg,flv...)" />
            <f:selectItem id="r4" itemLabel="other..." />               
    </h:selectOneRadio> 

    <p:dataTable var="garbage" value="#{resultsController.allGarbage}" paginator="true" rows="10"  
             paginatorTemplate="{CurrentPageReport}  {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"  
             rowsPerPageTemplate="5,10,15">         

            <p:column>  
            <f:facet name="header">  
            <h:outputText value="Filename" />  
            </f:facet>  
            <h:outputText value="#{garbage.filename}" />
             </p:column> 

            <p:column>  
            <f:facet name="header">  
            <h:outputText value="Description" />  
            </f:facet>  
            <h:outputText value="#{garbage.description}" />  
             </p:column> 

            <p:column>  
            <f:facet name="header">  
            <h:outputText value="Upload date" />  
            </f:facet>  
            <h:outputText value="#{garbage.uploadDate}" /> 
             </p:column>                
    </p:dataTable> 
</h:form>
</ui:define>

------------------------更新2------------------------------

此图显示了组件在chrome中的显示方式以及chrome控制台显示错误的方式:

从JS错误来看,PrimeFaces javascript库似乎没有正确包含

我对Mojara也有同样的问题(在js控制台中“Mojara未定义”)。由于某种原因,似乎没有包括js库(应该由服务器完成)。有时是,有时不是(从未找到原因)

如果有人读到这篇文章有什么想法,我将非常感谢任何提示。

对于mojarre,我的解决方法是手动包含mojarra的js库

对于您的问题,请对Primefaces进行同样的尝试

在我的项目中,有一个页面使用p:dataTable和分页。包括以下js文件(以及其他一些文件;显示在html输出源中):



查看html输出并检查是否包含分页相关的js文件。如果没有,请手动包含它们。请注意,src属性中的
/register
是我的上下文路径。用您的上下文路径替换它。

如果在生成的HTML
中看不到任何PrimeFaces特定的CSS/JS导入(右键单击浏览器中的页面,选择查看源代码,则意味着您需要用JSF
替换模板中的HTML
。这就是所有资源依赖项的位置(连接到JSF组件/库的CSS/JS/images/etc)最终将在

在以前的PrimeFaces版本(至少在2.0中)中,您还需要配置一个资源servlet,以便PrimeFaces可以从JAR文件中为其提供服务:

<servlet>
    <servlet-name>Resource Servlet</servlet-name>
    <servlet-class>org.primefaces.resource.ResourceServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>Resource Servlet</servlet-name>
    <url-pattern>/primefaces_resource/*</url-pattern>
</servlet-mapping>

资源Servlet
org.primefaces.resource.ResourceServlet
资源Servlet
/素数资源/*

但是,我不确定2.0之后的新PrimeFaces版本,而且由于某些原因,目前用户手册不再免费。

您尝试过Opera或FF吗?是的,它在任何情况下都不起作用。我只是不明白为什么不显示分页?我完全按照中的说明操作,您的表是否嵌套在任何其他PrimeFaces或jsf中组件?如果是,您可以在这些Sourroring组件之外尝试它。dataTable是否在表单中。尝试将其放入
h:form
是的,它在表单中,现在我将更新它与hold组件的外观。我只是在输出中看到了视图源,那些脚本不在那里。我是否应该从某个地方下载它们并添加t到我的WEB-INF/lib文件夹?我应该如何手动包含它们?我在eclipse中从未这样做过。不,它们在primefaces.jar中(是否在您的类路径中,例如项目的lib文件夹中?)。如果您(成功)在其他页面上使用primefaces组件您可以将include目录复制到那里。是的primefaces-2.2.1.jar在我的lib文件夹中,但我不知道应该将什么添加到我的results.xhtml页面中。我应该将这些脚本标记添加到我页面的head标记中吗?例如:如果您的上下文路径是/project,请尝试将以下内容添加到r的标题中esults.xhtml:
我添加了以下内容:但它不起作用。我如何知道该路径是否正确?如何检查我的路径?现在已经起作用了,谢谢。但我仍然不明白为什么每次我想使用素面时,我都必须添加这些脚本标记。我能以某种方式避免这样做吗?再次感谢。你为什么要避免这样做?这只是其中的一部分PrimeFaces的核心功能和外观,因此您无需自己编写。好的,我想我现在明白了。我只是想我可以使用所有PrimeFaces组件,而无需提及它们需要什么脚本文件。您根本不需要提及它们。如果您使用
.D,它们应该会自动在头部结束你明白我的答案吗?不。我哪里都没说。看起来你把我的答案和Matt Handy的答案混在一起了。我所说的只是用
替换
,必要时还可以配置
资源servlet
。仅此而已。
<script type="text/javascript" src="/register/primefaces_resource/2.1/yui/datasource/datasource-min.js"></script> 
<script type="text/javascript" src="/register/primefaces_resource/2.1/primefaces/paginator/paginator.js"></script> 
<script type="text/javascript" src="/register/primefaces_resource/2.1/yui/datatable/datatable-min.js"></script> 
<script type="text/javascript" src="/register/primefaces_resource/2.1/primefaces/datatable/datatable.js"></script> 
<script type="text/javascript" src="/register/primefaces_resource/2.1/yui/swf/swf-min.js"></script> 
<script type="text/javascript" src="/register/primefaces_resource/2.1/yui/charts/charts-min.js"></script> 
<script type="text/javascript" src="/register/primefaces_resource/2.1/primefaces/charts/charts.js"></script>
<servlet>
    <servlet-name>Resource Servlet</servlet-name>
    <servlet-class>org.primefaces.resource.ResourceServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>Resource Servlet</servlet-name>
    <url-pattern>/primefaces_resource/*</url-pattern>
</servlet-mapping>