Paginacao no richfaces

6 respostas
Deluxe

Galera to usando o datascroller do richfaces

<ui:composition 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:a4j="http://richfaces.org/a4j"
      xmlns:rich="http://richfaces.org/rich">
<style>
.label{
font-weight:bold;
}
</style>
    <rich:panel>
        <f:facet name="header">
            <h:outputText value="Lista de todos os Usuarios Detalhados"></h:outputText>
        </f:facet>
        <h:form>
        <rich:dataGrid value="#{usuarioBean.list}" var="pessoa" columns="3" elements="9">
            <rich:panel style="width:200px">
                <f:facet name="header">
                    <h:outputText value="#{pessoa.nome}"></h:outputText>
                </f:facet>
                <h:panelGrid columns="2">
                    <h:outputText value="Nome:" styleClass="label"></h:outputText>
                    <h:outputText value="#{pessoa.nome}" />
                    <h:outputText value="E-Mail:" styleClass="label"></h:outputText>
                    <h:outputText value="#{pessoa.login}" />
                    <h:outputText value="Data:" styleClass="label"></h:outputText>
                    <h:outputText value="#{pessoa.data}" />
                    <h:outputText value="Senha:" styleClass="label"></h:outputText>
                    <h:outputText value="#{pessoa.senha}" />
                </h:panelGrid>
            </rich:panel>
            <f:facet name="footer">
                <rich:datascroller></rich:datascroller>
            </f:facet>
        </rich:dataGrid>
        </h:form>
    </rich:panel>       
</ui:composition>

Ele lista tudo direitinho, quando gera a 2 pagina e eu vo clikar na 2 pagina pra mostrar..
da o seguinte erro.

type Exception report

message 

description The server encountered an internal error () that prevented it from fulfilling this request.

exception 

java.lang.IllegalStateException: duplicate Id for a component _id1
	org.ajax4jsf.application.AjaxStateManager$TreeStrutureNode.apply(AjaxStateManager.java:442)
	org.ajax4jsf.application.AjaxStateManager$TreeStrutureNode.apply(AjaxStateManager.java:452)
	org.ajax4jsf.application.AjaxStateManager$TreeStrutureNode.apply(AjaxStateManager.java:464)
	org.ajax4jsf.application.AjaxStateManager.buildSerializedView(AjaxStateManager.java:330)
	org.ajax4jsf.application.AjaxStateManager.saveSerializedView(AjaxStateManager.java:314)
	org.ajax4jsf.context.AjaxContextImpl.saveViewState(AjaxContextImpl.java:459)
	org.ajax4jsf.event.AjaxPhaseListener.afterPhase(AjaxPhaseListener.java:81)
	com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:211)
	com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:117)
	javax.faces.webapp.FacesServlet.service(FacesServlet.java:198)
	org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:141)
	org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:281)
	org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:63)
	org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:75)


note The full stack trace of the root cause is available in the Apache Tomcat/6.0.16 logs.

alguem sabe pq?

6 Respostas

mateusprado

tem um compente com id/nome duplicado.
pelo oq percebi vc tem um componente em conflito. coloque id em seus componentes e teste novamente.

Deluxe
<ui:composition 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:a4j="http://richfaces.org/a4j"
      xmlns:rich="http://richfaces.org/rich">
<style>
.label{
font-weight:bold;
}
</style>
    <rich:panel>
        <f:facet name="header">
            <h:outputText value="Lista de todos os Usuarios Detalhados"></h:outputText>
        </f:facet>
        <h:form id="xxx">
        <rich:dataGrid value="#{usuarioBean.list}" var="pessoa" columns="3" elements="9">
            <rich:panel style="width:200px">
                <f:facet name="header">
                    <h:outputText id="nomeM" value="#{pessoa.nome}"></h:outputText>
                </f:facet>
                <h:panelGrid columns="2">
                    <h:outputText value="Nome:" styleClass="label"></h:outputText>
                    <h:outputText id="nome" value="#{pessoa.nome}" />
                    <h:outputText value="E-Mail:" styleClass="label"></h:outputText>
                    <h:outputText id="login" value="#{pessoa.login}" />
                    <h:outputText value="Data:" styleClass="label"></h:outputText>
                    <h:outputText id="data" value="#{pessoa.data}" />
                    <h:outputText value="Senha:" styleClass="label"></h:outputText>
                    <h:outputText id="senha" value="#{pessoa.senha}" />
                </h:panelGrid>
            </rich:panel>
            <f:facet name="footer">
                <rich:datascroller></rich:datascroller>
            </f:facet>
        </rich:dataGrid>
        </h:form>
    </rich:panel>       
</ui:composition>

continua ainda o problema

Deluxe

resolvido, tem que meter id em tudo
haha
=d
vlw

mateusprado

na verdade ele gera um id para cada componente automaticamente ao renderizar a arvores de componente, porem é possivel acontecer um conflito entre os ids. por isso é bom manter o costume de setar id para todos os componentes. isso tb pode ajudar a manutenção e ter que escrever o atributo id futuramente.

abraços,

mateusprado

sera que vc pode me ajudar no meu topico de Passando parametros.
da uma olhada lá.

obrgado.

soro

Com o rich:dataGrid eu definindo as colunas e os números de elementos ele já faz a paginação sozinho? Não preciso me preocupar com o que tenho na minha lista?

Criado 9 de julho de 2008
Ultima resposta 6 de ago. de 2009
Respostas 6
Participantes 3