0

我有两个 xhtml 文件。一个作为要显示的完整页面,另一个使用模板()。当我直接调用文件(完整文件)时,包含在其中的所有效果都可以正常工作,但是当我调用使用模板的页面时,页面已加载,但分页效果不起作用并给出以下异常:

“17:14:07,031 严重 [javax.enterprise.resource.webcontainer.jsf.application] (http - 0.0.0.0-8090-3) JSF1007:在预览中发现组件 ID 重复消息。17:14:07,031 严重 [javax .enterprise.resource.webcontainer.jsf.application] (http - 0.0.0.0-8090-3) + id: j_id1 "

完整代码(fileA.xhtml):

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:ui="http://java.sun.com/jsf/facelets"  
    xmlns:h="http://java.sun.com/jsf/html"  
    xmlns:f="http://java.sun.com/jsf/core"  
    xmlns:p="http://primefaces.org/ui"> 
<h:head>
  <title>Parâmetros Integrator</title>
</h:head>       
<h:body>
<f:view>       
    <h:form prependId="false">    
    <p:dataTable id="dataTable" var="valor" value="#{parametroBean.listaParametro}"  
                 paginator="true" rows="10"  
                 paginatorTemplate="{CurrentPageReport}  {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"  
                 rowsPerPageTemplate="4,5,7"
                 style="max-width: 580px; min-width: 550px">  
        <f:facet name="header">  
            Parâmetros Integrator  
        </f:facet>    
        <p:column style="max-width: 40px; min-width: 40px; overflow: hidden" >  
            <f:facet name="header">  
                <h:outputText value="Parametro" />  
            </f:facet>  
            <h:outputText value="#{valor.parametro}" />  
        </p:column>    
        <p:column style="max-width: 50px; min-width: 50px; overflow: hidden">  
            <f:facet name="header">  
                <h:outputText value="Valor" />  
            </f:facet>  
            <h:outputText value="#{valor.valor}" />  
        </p:column>    
        <p:column style="max-width: 50px; min-width: 50px; overflow: hidden">  
            <f:facet name="header">  
                <h:outputText value="Descricão" />  
            </f:facet>  
            <h:outputText value="#{valor.desParametro}" />  
        </p:column>    
    </p:dataTable> 

</h:form>    
</f:view> 
</h:body>
</html>

使用模板的代码(fileB.xhtml):

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

  <ui:composition  template="/templates/conteudo.xhtml"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:p="http://primefaces.org/ui">


  <ui:define name="content">

    <p:dataTable id="dataTable2" var="valor" value="#{parametroBean.listaParametro}"  
                 paginator="true" rows="10"  
                 paginatorTemplate="{CurrentPageReport}  {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"  
                 rowsPerPageTemplate="4,5,7"
                 style="max-width: 980px; min-width: 950px">  
        <f:facet name="header">  
            Parâmetros Integrator  
        </f:facet>  

        <p:column style="max-width: 40px; min-width: 40px; overflow: hidden" >  
            <f:facet name="header">  
                <h:outputText value="Parametro" />  
            </f:facet>  
            <h:outputText value="#{valor.parametro}" />  
        </p:column>  

        <p:column style="max-width: 80px; min-width: 80px; overflow: hidden">  
            <f:facet name="header">  
                <h:outputText value="Valor" />  
            </f:facet>  
            <h:outputText value="#{valor.valor}" />  
        </p:column>  

        <p:column style="max-width: 80px; min-width: 80px; overflow: hidden">  
            <f:facet name="header">  
                <h:outputText value="Descricão" />  
            </f:facet>  
            <h:outputText value="#{valor.desParametro}" />  
        </p:column>  

    </p:dataTable>  


    </ui:define>

  </ui:composition>

谁能告诉我可能是什么?

谢谢!!!

4

2 回答 2

0

我认为您的问题位于组件 ID 中的某个位置。如果您不自己命名组件,它将自动完成。尝试让自己的 id 名称有所不同。不要忘记在您的模板文件中也这样做。

于 2012-09-05T20:39:40.817 回答
0

您得到的错误是指 JSF 生成的页面中的重复 ID。我会检查你的模板(conteudo.xhtml)是否有相同的组件 ID(模板和复合 facelet)。如果您有 Firebug 或 IE 开发人员工具,则可能更容易查明(取决于您使用的浏览器)。

于 2012-09-05T20:42:04.143 回答