Tabela JSF com comandos

4 respostas
M

Olá,

Eu gostaria de fazer uma tabela (h:dataTable) que listasse todos produtos, e em cada linha, uma opção para excluir e uma para editar aquela linha.

<h:dataTable> 
             <h:column>
                <f:facet name="header">
                    <h:outputText value="ID"/>
                </f:facet>    
                <h:outputText value="#{prod.idProduto}"/>
            </h:column>
            
            <h:column>
                <f:facet name="header">
                    <h:outputText value="Descricao"/>
                </f:facet>    
                <h:outputText value="#{prod.descricao}"/>
            </h:column>
</h:dataTable>

E o código no bean como fica?
Alguém podia me passar um exemplo por favor?

Preciso fazer aqui o site em JSF, mas to me matando, conheço JSF muito pouco. Se alguem puder me dar uma luz, AGRADEÇO!!!

4 Respostas

D

Bom basicamente, vc terá terá que criar um link na sua Datatable para excluir a linha.

<h:column>   
                <f:facet name="header">   
                    <h:outputText value="Excluir"/>   
                </f:facet>       
                <h:commandLink value="Excluir" action="#{SeuManagedBean.excluir}" 
            </h:column>

E no seu managedBean seu método ficaria assim:

public void excluir(){
     ObjetoDaTabela obj=seuDataModel.getRowData();
     //Seu método para o objeto
  excluirObjeto(obj); 



}

Sua tabela está sendo povoada???

M

Está sendo populada sim, esqueci de por:

<h:dataTable id="produtos" value="#{produto.listaProdutos}" var="prod">

Eu uso Hibernate também, no caso para excluir um produto, eu precisava ter o id dele.

Hmm quanto ao:

public void excluir(){  
    ObjetoDaTabela obj=seuDataModel.getRowData();  
     //Seu método para o objeto  
  excluirObjeto(obj);   
}

Eu não tenho acesso ao meu dataModel, como faço pra obter esse acesso (uso JSF - dataTable).

D

Tem acesso.O que impede vc de fazer isso?

Produto p=listaProdutos().getRowData();
M

Daniel.F:
Tem acesso.O que impede vc de fazer isso?

Produto p=listaProdutos().getRowData();


É que o listaProdutos() retorna uma ArrayList.
Daí tudo bem, tem o método get, mas qual índice eu passo pra ele?
O meu grande problema está em descobrir qual foi o índice (o id) que o usuário clicou.

Tava vendo tem a tag <h:param>, como eu posso ler ela no bean?

<f:param id="codigo" name="codigo" value="#{prod.idProduto}" />

Acredito que assim ele já me retornaria qual foi o índice clicado.

Criado 26 de outubro de 2008
Ultima resposta 26 de out. de 2008
Respostas 4
Participantes 2