Bem, eu faço assim, pego os dados para uma lista e depois jogo para o bean.
List listaAluno = new ArrayList();
listaAluno = session… //aqui eu pego a lista
//depois faça assim
Aluno aluno = new Aluno();
aluno = listaAluno.get(indice);
Dai tu pode fazer assim. No botao primeiro, sempre o primeiro indice é 0, entao nao tem erro.
Para ultimo, voce pode usar o metodo size() da lista e obter o ultimo registro.
E para ir para o proximo ou anterior, tu vai ter que primeiramente jogar o valor dos botoes para um variavel, e ir sempre ++ ou – a variavel.
So que utilizar uma lista para fazer isso, dependendo do caso nao é muito formidavel. Imagine se esses dados vao de um pc para outro, sem ser em rede local. Imagine se no banco tem 1000 registros, com certeza irá demorar d+. Sem contar que os dados com List nunca estarao atualizados caso voce utilize seu programa em alguns computadores na mesma rede.
Por exemplo, imagine cadastro de produtos, tem 10 cadastrado e eu puxo numa lista. Dai o computador 2 cadastrada um, ou seja, atualmente tem 11 no banco, mas minha lista tem apenas 10.
Entao, dependendo do caso a Lista nao sera util a voce.
Abraços