Exibir uma lista dentro de outra lista no JSF 2.0 primefaces

4 respostas
I

boa noite pessoal, estou com uma dúvida grande

estou em um projeto JSF 2.0 com primefaces e preciso gerar um relatório, só que esse relatório vai exibir uma lista de objetos e cada objeto desse tem uma outra lista de objetos que também precisa ser exibida…

tem que ficar mais ou menos assim na tela

1 - Delegado Fulano de Tal

1 - zezinho
 2 - huguinho
 3 - luizinho
 4 - .............

2 - Delegado Teste Básico

1 - juan
 2 - bily
 3 - ...................

Para iterar uma lista de objetos eu sei q posso usar a tag do primefaces chamada dataTable, só que eu não sei que tags usar quando cada objeto da iteraçaõ tb tiver uma atributo do tipo List e essa lista também ter que ser exibida na tela…

é mais ou menos isso, quero poder exibir na tela cada um dos delegados e abaixo de cada delegado quero que apareça as inscrições associadas a ele…

será que alguém pode me ajudar?
desde já agradeço

4 Respostas

A

O aninhamento não funcionou?

<p:dataList value="#{seubean.suaLista} var="lista1" type="ordered">
    #{lista1}
    <p:dataList value="#{seubean.suaListaComMetodo(lista1) }" var="lista12" type="ordered">
          #{lista12}
    </p:dataList>
</p:dataList>
public List<TipoLista> suaLista(){
.
.
.
.
return ObjetoDoTipoList;
}

public List<TipoListaASerCarregada> suaListaComMetodo(String valorParâmentro){
.
.
.
return ListaComObjetosPorTipo;
}

pode ser que tenha algum erro acima, fiz no dedão. Mas a idéia é essa, é puro raciocínio lógico.

I

boa tarde andré, testei sua idéia só que como a lista que o delegado possui é de objeto e não de String ele da um erro de Parsing.
Eu não sabia que dava pra passar parâmetro pela view

você tem alguma outra idéia.

A

cara, me passw um pouco do teu código, assim posso auxiliá-lo melhor, me passe o nome dos getters e se possivel um pouco da estrutura da base onde está essa lista do(e) delegado.

I
@ManagedBean(name = relatorioBean)

@ViewScoped

public class RelatorioBean {
private List<Delegado> listaDelegados;
private List<Inscricao> listaInscricao;
private final DAO<Delegado> delegadoDAO = new DAO<Delegado>(Delegado.class);
private final DAO<Inscricao> inscricaoDAO = new DAO<Inscricao>(Inscricao.class);


@ManagedProperty(value = "#{loginBean}")
private LoginBean loginBean;


@PostConstruct
public void loadPage(){
    if (loginBean.getUsuarioLogado().getTipoUsuario().equals(TipoUsuario.ADM)) {
        
    }
    if(loginBean.getUsuarioLogado().getTipoUsuario().equals(TipoUsuario.RELATORIOS)) {
        
    }
    if (loginBean.getUsuarioLogado().getTipoUsuario().equals(TipoUsuario.CADASTRADORES)) {          
        Universidade univ = loginBean.getUsuarioLogado().getUniversidade();
        listaDelegados = obterDelegadosDaUniversidade();

        System.out.println("===========================================");
        System.out.println("QTD DELEGADOS");
        System.out.println(listaDelegados.size());
        
        //listaDelegados = new DelegadoDAO().obterDelegadosPorUniversidade(null);
    }
}
public List<Delegado> obterDelegadosDaUniversidade(){
    List<Delegado> lista = null;
    lista = new DelegadoDAO().obterDelegadosAtivosDaUniversidade(loginBean.getUsuarioLogado().getUniversidade());
    System.out.println("====================================");
    System.out.println("METODO obterDelegadosAtivosDaUniversidade " + lista.size());
    return lista;
}

public List<Inscricao> obterInscricoesDoDelegado(){ 
    List<Inscricao> lista = null;
    //lista = new InscricaoDAO().buscarInscricoesPorDelegado();
    
    System.out.println("====================================");
    System.out.println("METODO obterInscricoesDoDelegado " + lista.size());
    return lista;
}
Criado 28 de julho de 2011
Ultima resposta 29 de jul. de 2011
Respostas 4
Participantes 2