RSS

Paginacao Por Demanda com JSF – Parte 4

22 jan

Complementando o post anterior, como solicitado em um comentário.
O rich:dataTable e o rich:datascroller deverão ficar da seguinte forma na pagina.

<rich:dataTable id=”TabelaUsuarios”  value=”#{usuarioBean.dataModel}”
binding=”#{usuarioBean.dataTable}” var=”usuario” rows=”10″>
<f:facet name=”header” />
<f:facet name=”footer”>
<rich:datascroller for=”TabelaUsuarios” stepControls=”hide” align=”center” />
</f:facet>
</rich:dataTable>

Caso seja necessário guardar o estado da tabela, poderá ser utilizado o tomahawk para isso. Basta fazer:

<t:saveState value=”#{usuarioBean.dataTable}”></t:saveState>

 
15 Comments

Publicado por em janeiro 22, 2009 em JSF

 

15 respostas para Paginacao Por Demanda com JSF – Parte 4

  1. Rodrigo

    julho 2, 2009 at 5:04 pm

    Achei bem interessante a serie de posts sobre paginação por demanda.

    Também estou tento os mesmos problemas de performance que aconteceu com você.

    Implementei o código descrito nesses artigos. Funcionou quase perfeitamente.

    O único problema encontrado até agora foi a ordenação. Quando o dataTable vai ordenar os resultados, ele repete as linhas da tabelas. Sabe alguma solução para este problema?

     
  2. Alex Egidio

    setembro 11, 2009 at 11:50 am

    Parabéns pelo excelente post, estava faltando algo assim em nossa língua mãe.
    Você chegou a deparar com este problema :

    java.io.NotSerializableException: org.richfaces.component.html.HtmlDataTable

    Pesquisando na internet encontrei uma solução que mandar colocar um modificar “transient” na variável, mas quando faço isso as coisas pioram veja o erro:

    java.lang.NullPointerException – /WEB-INF/componentes/pesquisa.xhtml @73,85 value=”#{pesquisaBean.dataModel}”: Error reading ‘dataModel’ on type

    Atenciosamente

     
    • Marcus Mazzo

      setembro 1, 2010 at 11:38 pm

      Já tentou alterar a versão do richfaces? existia uma versão que estava toda bugada.

       
  3. Alberto

    maio 13, 2010 at 6:37 pm

    Boa tarde, estou implementando a paginação sob demanda e não está funcionando, já copiei tudo o que tinha no site mas ainda nada, poderia me ajudar por favor ?

    Quando clico na segunda página o datascroller não traz novos registros, é como se ficasse sempre na primeira página…

    []‘s e Obrigado

     
  4. Diogo Souza

    setembro 9, 2010 at 6:06 pm

    Estou realmente impressionado com este material!!

    Nunca encontrei algo tão bem elaborado (nem em inglês) sobre paginação em JSF como estes artigos. Você realmente está de parabéns e não é só porque me ajudou muito numa implementação recente e semelhante a esta, mas também por ser de qualidade e auxílio a muitos outros…

    Meu sinceros parabéns!!

    Sucesso!

     
  5. Kirmaier Andrade

    dezembro 14, 2010 at 7:56 pm

    Muito bom o post, está de parabéns!

    Estou com uma dificuldade que o meu datascroller não exibe a quantidade de páginas e nem funciona as opções de proxima, anterior, primeira e ultima. Faz a pesquisa delimitando corretamente mas não consigo ir paginando por exemplo de 10 em 10 – 20 em 20..paginas 1 de 100.
    Obrigado e mais uma vez, parabéns!

     
    • Marcus Mazzo

      outubro 8, 2011 at 11:05 am

      Você colocou o atributo “rows” no datatable?
      Quanto as funcionalidades, não saberia o que esta ocorrendo.

       
  6. joao

    maio 5, 2011 at 5:13 pm

    Muito bom tuto.

    Obrigado por compartilhar conhecimento

     
  7. Marlesson

    maio 16, 2011 at 8:22 pm

    Gostei muito da implementação da paginação.
    Encontrei um problema e gostaria de saber se alguem teve o mesmo problema.

    Como a chamada da função de pesquisa(Select na base de dados) fica direto no get associado no DataTable (getDataModel). Devido ao siclo do JSF, em varios momentos a consulta é executada várias vezes sem necessidade.

    Como exemplo a consulta na base é executada várias vezes ao mudar a página (usar o rich:datascroller), 2 vezes com os parámetros antigos da página e a ultima com os parámetros certos da próxima página.

    OBS: A implementação que fiz não utiliza do Hibernate, e utiliza Bean de request.

    Alguma sugestão? Posso enviar os código.
    Fico no aguardo.

     
    • Marcus Mazzo

      outubro 8, 2011 at 11:02 am

      Marlesson,

      Acredito que o problema de ser renderizado várias vezes é porque o dataScroller esta dentro do datatable e a cada linha ele executa o get novamente. Estarei disponibilizando, em breve, uma nova forma de fazer paginação em demanda sem ficar preso a qualquer framework (primefaces, richfaces, etc) utilizando apenas objetos do proprio java.
      Abraços!!!

       
  8. Rogerio Martins

    junho 13, 2011 at 9:47 pm

    parabéns pelo artigo, porém poderia disponibilizar o código de exemplo para melhor compeensão..

     
  9. Andrei

    julho 18, 2011 at 4:37 am

    Poderia me passar o projeto?

    Tem como usar seu codigo usando o <c:foreach ?

     
    • Marcus Mazzo

      outubro 8, 2011 at 11:06 am

      No caso esta implementação é especifica para o richfaces, então não teria como utilizar c:foreach, mas estarei disponibilizando uma implementação que não ficará preso a nenhum framework de tela.
      Abraços!!!

       
  10. Vinicius Ramaciotti

    agosto 29, 2011 at 5:06 pm

    Antes de mais nada, reforcçarei o que o Diogo Souza disse:
    Também estou mto impressionado com o material, achei bárbaro! Parabéns.

    Mas agora, como nem tudo são flores…rsrsrs…gostaria de saber sobre um problema que tem ocorrido comigo, que é o seguinte:

    Fiz toda a implementação das classes faladas e ocorreu que minha Rich:DataTable não é renderizada novamente com os dados corretos, se eu tento via ajax, mas qdo tento normalmente ela renderiza, debuguei o sistema mas nao acho a solução, Será que você poderia me ajudar com isso?

    Abraços e fique com DEUS!

     
    • Marcus Mazzo

      outubro 8, 2011 at 11:10 am

      Não entendi bem, por exemplo, eu utilizo ajax em alguns projetos e o que é preciso fazer é renderizar novamente a tabela, o problema ocorre na renderização da tabela, ainda não entendi o porque, dessa forma eu coloco um panelgroup e a tabela dentro e mando renderizar o panelgroup ai a tabela renderiza normalmente, é como se fosse preciso dar um render no pai da tabela.

       

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Sair / Alterar )

Imagem do Twitter

You are commenting using your Twitter account. Sair / Alterar )

Foto do Facebook

You are commenting using your Facebook account. Sair / Alterar )

Connecting to %s

 
Seguir

Obtenha todo post novo entregue na sua caixa de entrada.