我有两个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>
有人能告诉我可能是什么吗?
谢谢!!!
答案 0 :(得分:0)
我认为您的问题位于组件ID中的某个位置。如果您没有自己命名组件,它将自动完成。尝试使自己的id名称不同。不要忘记在模板文件中也这样做。
答案 1 :(得分:0)
您获得的错误是指JSF生成的页面中的重复ID。我会检查您的模板(conteudo.xhtml
)是否有相同的组件ID(模板和复合facelet)。如果您有Firebug或IE开发人员工具,可能更容易查明(取决于您的浏览器使用情况)。