使用模板时,效果不起作用 - JSF

时间:2012-09-05 20:22:20

标签: java templates jsf

我有两个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>

有人能告诉我可能是什么吗?

谢谢!!!

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

相关问题