Como atribuir e recuperar valores na request utilizando JSF

1 resposta
F

Fala pessoal, blzinha?
estou começando a utilizar o framework JSF, porém tenho algumas dúvidas básicas… dentre elas uma em especial.

Suponham que em um ManagedBean, possúo um método que realiza uma busca em meu banco de dados e me retorna uma lista de objetos… agora preciso adicionar essa lista na request para recuperar-la na página JSP que exibirá os valores dessa lista…
Alguem poderia me explicar basicamente como funciona essa operação no JSF? não sei se realmente a melhor situação seria adicionar a lista na request, ou se há outra forma mais eficiente…

já desenvolvi pequenos exemplos no struts, e neste, o metodo da action possui como parametro um objeto que contem a requisição… já no jsf estou completamente perdido

agradeço pela ajuda pessoal…
vlw!

1 Resposta

davidbuzatto

No JSF existe um componente chamado dataTable. Nesse componente vc amarra os valores da lista q vc está retornando. Por exemplo, se vc tem um managedBean que trabalha com objetos do tipo pessoa, vc pode criar um método chamado getLista dentro do mesmo que retorne uma lista de pessoas, e então dizer a sua dataTable que os valores que ela deverá usar vem da lista obtida pelo método getLista. Sua classe Pessoa deve ter nesse exemplo, os atributos nome e sobrenome, com seus métodos getNome e getSobrenome implementados.

<%-- value da dataTable é a lista de pessoas. note que é pessoaBack.lista 
e não pessoaBack.getLista linha vai representar cada elemento da lista, 
que guarda pessoas --%>
<h:dataTable value="#{pessoaBack.lista}" 
             var="linha">

    <%-- cria cada coluna da tabela, fornecendo o cabecalho e o atributo 
    da pessoa que vai ser usado --%>
    <h:column>
        <f:facet name="header">
            <h:outputText value="Nome"/>
        </f:facet>
        <h:outputText value="#{linha.nome}"/>
    </h:column>

    <h:column>
        <f:facet name="header">
            <h:outputText value="Sobrenome"/>
        </f:facet>
        <h:outputText value="#{linha.sobre}"/>
    </h:column>

<h:dataTable>

Posta ai se deu certo!

Até mais!

Criado 22 de agosto de 2007
Ultima resposta 22 de ago. de 2007
Respostas 1
Participantes 2