Paginação apropriada jsf

Bom dia pessoal.

Precisava de sugestões em relação a paginação. Minha aplicação utiliza jsf(richfaces) + jsp. O que vocês sugerem para implementar paginação ?

[quote=efcjunior]Bom dia pessoal.

Precisava de sugestões em relação a paginação. Minha aplicação utiliza jsf(richfaces) + jsp. O que vocês sugerem para implementar paginação ?[/quote]

A paginação default do RichFaces é carregar tudo pra memória, o que é péssimo pois joga a performance lá pra baixo… sugiro implementar uma paginação por demanda o que melhora consideravelmente a performance.

[]'s Hewerton Crisóstomo

Pois é encontrei algumas dicas sobre isso mesmo. Não estou conseguindo entender os tutoriais. Se alguém tiver alguma indicação de tutorial.

Estes links tem tudo que precisa:
url=http://cagataycivici.wordpress.com/2009/09/28/lazy-loading-jsf-datatable/
http://eclecticprogrammer.com/2008/07/30/a-generic-superclass-for-sorting-and-paginating-in-the-database-with-richfaces/
http://www.ilikespam.com/blog/paging-large-data-sets-with-a-lazylist
http://www.jboss.org/index.html?module=bb&op=viewtopic&t=130902

Esse link abaixo, especificamente, aborda um exemplo prático de paginação por demanda com RichFaces
http://www.jboss.org/index.html?module=bb&op=viewtopic&t=125952

[]'s Hewerton Crisóstomo

Legal…Estou tentando implementar, por isso com algumas dúvidas:

1- wrappedKeys seria a chave primária da minha tabela e wrappedData serial os dados da minha tabela ?

#
private List<Integer> wrappedKeys = null; 
#
private final Map<Integer, FolderDTO> wrappedData = new HashMap<Integer, FolderDTO>();  

2- o método findFolders eu que tenho que fornecer. Ele tem que ir de novo no banco ?

#
@Override 
#
public void walk(FacesContext context, DataVisitor visitor, Range range, Object argument) throws IOException 
#
{ 
#
    if (detached && getSortFieldObject() != null) 
#
    { 
#
        for (Integer key : wrappedKeys) 
#
        { 
#
            setRowKey(key); 
#
            visitor.process(context, key, argument); 
#
        } 
#
    } else 
#
    { 
#
        int firstRow = ((SequenceRange) range).getFirstRow(); 
#
        int numberOfRows = ((SequenceRange) range).getRows(); 
#
        wrappedKeys = new ArrayList<Integer>(); 
#
        for (FolderDTO folder : serviceForms.findFolders(firstRow, numberOfRows, sortField, descending) 
#
        { 
#
            wrappedKeys.add(folder.getPk()); 
#
            wrappedData.put(folder.getPk(), folder); 
#
            visitor.process(context, folder.getPk(), argument); 
#
        } 
#
    } 
#
}

galera onde eu acho o jar dessa classe: com.redi5.util.LogFactory