1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Problemas com exclusão em JSF

Bom dia,

Sou iniciante em JSF e estou com problema neste código ele nao esta excluindo a linha da lista (na parte de baixo do codigo) estou mandando tambem meu bean ja tentei de toda forma e nao exclui a linha selecionada.

alguem poderia me ajudar?

desde ja agradeço...

<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:f="http://java.sun.com/jsf/core">
<h:head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
    <title>Gestão de Produtos</title>
</h:head>
<h:body>
    <h:form>

        Nome:
        <h:inputText value="#{gestaoProdutosBean.produto.nome}" />

        Fabricante:
        <h:inputText value="#{gestaoProdutosBean.produto.fabricante}" />

        Categoria:
        <h:inputText value="#{gestaoProdutosBean.produto.categoria}" />

        <h:commandLink value="Ajuda "
            action="#{gestaoProdutosBean.obterAjuda}">
            <f:actionListener binding="#{botaoLog}" />
        </h:commandLink>

        <br> </br>
        <h:commandButton value=" Incluir "
            action="#{gestaoProdutosBean.incluir}"
            actionListener="#{gestaoProdutosBean.verificarInclusao}">
            <f:actionListener binding="#{botaoLog}" />
        </h:commandButton>
    </h:form>


        <h:form>
        <ol>
                <ui:repeat var="item" value="#{gestaoProdutosBean.produtos}">

                <li>#{item.nome} - #{item.fabricante} - #{item.categoria} 
                <h:commandButton
                        id="excluir" value="Excluir" action="#{gestaoProdutosBean.excluir}">
                        <f:actionListener binding="#{botaoLog}"/>
                        <f:setPropertyActionListener
                            value="#{gestaoProdutosBean.produtoSelecionado}" target="#{item}" />
                    </h:commandButton>
                </li>

            </ui:repeat>
    </ol>
        </h:form>


</h:body>
</html>
package br.deivsoft.visao;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.event.ActionEvent;

import br.deivsoft.dominio.Produto;

@SuppressWarnings("serial")
@ManagedBean
@SessionScoped
public class GestaoProdutosBean implements Serializable {

    private List<Produto> produtos;
    private Produto produto;
    private Produto produtoSelecionado;

    public GestaoProdutosBean() {
        this.produtos = new ArrayList<Produto>();
        this.produto = new Produto();
    }

    public String obterAjuda() {

        if (this.produtos.isEmpty()) {
            return "help?faces-redirect=true";
        } else {
            return "reportError?faces-redirect=true";
        }
    }

    public void verificarInclusao(ActionEvent event) {
        System.out.println("Verificando...");
        if ("".equals(this.produto.getFabricante())) {
            this.produto.setFabricante("Sem Fabricante");
        }

    }

    public Produto getProdutoSelecionado() {
        return produtoSelecionado;
    }

    public void setProdutoSelecionado(Produto produtoSelecionado) {
        this.produtoSelecionado = produtoSelecionado;
    }

    public void excluir() {
        this.produtos.remove(this.produtoSelecionado);
        System.out.println("Produto Excluido");
    }

    public Produto getProduto() {
        return produto;
    }

    public void incluir() {
        System.out.println("Incluindo...");
        this.produtos.add(this.produto);
        this.produto = new Produto();
    }

    @PostConstruct
    public void inicializar() {
        System.out.println("Inicializou Bean!");
    }

    @PreDestroy
    public void finalizar() {
        System.out.println("Finalizou Bean!");
    }

    public List<Produto> getProdutos() {
        return produtos;
    }

}
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

4 respostas

Não é a resposta que estava procurando? Procure outras perguntas com as tags jsf java ou faça a sua própria pergunta.