我想用分页功能制作一个简单的数据表,但我有两个问题:
1- 显示了数据,但浏览器没有显示分页器(我试过 IE 和 chrome)
<p:dataTable var="garbage" value="#{resultsController.allGarbage}" paginator="true" rows="10">
<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>
2- 在谷歌浏览器中,分页器仍然没有显示,而且我每次刷新时都会看到一些奇怪的对话框:
这是否意味着 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 控制台如何显示错误:
最佳答案
如果您在生成的 HTML 中没有看到任何 PrimeFaces 特定的 CSS/JS 导入 <head>
(在浏览器中右击页面,选择View Source,这意味着你需要将模板中的 HTML <head>
替换为 JSF <h:head>
。这就是所有资源依赖项(CSS/JS/连接到 JSF 组件/库的图像/等)将结束。
在以前的 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>
但是,我不确定 PrimeFaces 2.0 之后的新版本,目前用户手册由于某种原因不再免费。
关于java - (JSF 2.0) primefaces dataTable 组件的问题。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5457421/