java - (JSF 2.0) primefaces dataTable 组件的问题。

标签 java jsf browser jakarta-ee jsf-2

我想用分页功能制作一个简单的数据表,但我有两个问题:

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- 在谷歌浏览器中,分页器仍然没有显示,而且我每次刷新时都会看到一些奇怪的对话框:

enter image description here

这是否意味着 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 控制台如何显示错误: enter image description here

最佳答案

如果您在生成的 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/

相关文章:

http - DNS 查找和 HTTP 代理

html - Ctrl + PLUS/MINUS 在现代浏览器中有什么作用?

java - 无限期运行的线程会导致内存泄漏吗?

jsf - PrimeFaces CSS 外观缺失和 JS "Uncaught Reference Error: PrimeFaces is not defined"

java - 如何将桶排序添加到查询聚合

jsf - DataTable 中的每一行都有复选框。如何在选中新复选框时取消选中前一个复选框

jsf - @EJB(lookup) 因 org.omg.CosNaming.NamingContextPackage.NotFound 而失败

javascript - 客户打开web开发者工具时如何获取事件?

JavaFx 我的模型如何更新 View ?

java - 两个矩阵相加的简单java程序中发生NoSuchElementException?