Metodo Excluir em JSF

12 respostas
M

Olá estou fazendo um projeto para web, dai eu já fiz a pagina do Usuario…já tah funcionando cadastrarUsuario e ListaUsuarios…
dai quando lista os usuarios aparece do lado a opção para editar e para excluir…porém não estou conseguiindo fazer o metodo para excluir o usuario…alguem poderia me ajudar.

=]

12 Respostas

W

Alguma mensagem de erro ? “Ja nos ajudaria te ajudar!”

E

Olá MArcita, poste o método para gente dar uma verificada.

M

Entao segue o meu metodo da Class UsuarioController

public String excluirUsuario() throws SQLException{
		if(new UsuarioRegraNegocio().excluirUsuario(usuario).equalsIgnoreCase("sucess")){
			registrarMensagemInfo("Usuario excluido com sucesso!");
		}else{
			registrarMensagemErro("Erro ao excluir usuario!");
		}
		return "home";
				

	}

e o metodo na Class UsuarioRegradeNegocio

public String excluirUsuario(Usuario usuario) throws SQLException{
		   
	    try{   
	        UsuarioDao dao = new UsuarioDao(HibernateUtil.openSession());
	        HibernateUtil.currentSession().beginTransaction();
	        dao.deletar(usuario);               
	        
	        }finally {
	    	HibernateUtil.currentSession().close();
		}
	    return "";
}
ai qndo clico pra excluir apareci esse erro:
javax.servlet.ServletException: #{usuarioController.excluirUsuario}: java.lang.IllegalArgumentException: attempt to create delete event with null entity
	javax.faces.webapp.FacesServlet.service(FacesServlet.java:277)
	org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178)
	org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
	org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:388)
	org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:515)

Por favor na próxima mensagem use as tags CODE, dessa vez eu fiz pra você

B

Por favor coloque o trecho da página JSP que você chama o método excluir.

M

nao toh usando jsp e sim jsf

<rich:column width="10%">
						<f:facet name="header">
							<h:outputText value="Excluir" styleClass="TextoNormal" />
						</f:facet>
						<div align="center"><h:commandLink
							action="#{usuarioController.excluirUsuario}"
							styleClass="alinharCentro">
							<h:graphicImage value="/pages/imagens/excluir.png"
								styleClass="imgLink" />
						</h:commandLink></div>
					</rich:column>
E

Veja se este código te ajuda, pos esta persistido com Hibernate (JPA), e funciona bem.

public void excluir(Frota frota) { EntityManager em = null; try { em = PersistenceUtil.getEntityManager(); em.getTransaction().begin(); frota = em.merge(frota); em.remove(frota); em.getTransaction().commit(); } catch (Exception e) { e.printStackTrace(); em.getTransaction().rollback(); } finally { PersistenceUtil.close(em); } }

D

Seu método precisa do “usuario” pra deletar… tem que popular esse cara antes de deleta-lo…

T

O que está acontecendo
é que na hora que você vai excluir esse objeto
você não tem o ID dele

vc precisa recuperar antes de deletar

D
public String excluirUsuario() throws SQLException{  
            if(new UsuarioRegraNegocio().excluirUsuario(usuario).equalsIgnoreCase("sucess")){  
                registrarMensagemInfo("Usuario excluido com sucesso!");  
            }else{  
                registrarMensagemErro("Erro ao excluir usuario!");  
            }  
            return "home";  
                      
      
        }

verifica se o objeto usuario na linha 2 foi preenchido com o cara q vc quer deletar...
eu tava tomando um erro igual... e no meu caso foi pq eu alterei algumas coisas no código e ele
não tava populando ele.... ai ele da null pq ele tenta deletar um cara vazio...

o/*

E

Bom dia.
tem como você mostrar o código da sua tabela de usuário.
Na parte que esta postada, somente faz a ação de excluir o usuário, mas não esta selecionado qual usuário, por isso não vai excluir.

P

de uma lida no erro:

attempt to create delete event with null entity

ou seja o objeto usuario esta nulo, na página que vc monta o botao use mais ou menos assim:

<rich:column width="10%">
	<f:facet name="header">
		<h:outputText value="Excluir" styleClass="TextoNormal" />
	</f:facet>
	<div align="center">
		<h:commandLink action="#{usuarioController.excluirUsuario}" styleClass="alinharCentro">
			<h:graphicImage value="/pages/imagens/excluir.png" styleClass="imgLink" />
			<f:setPropertyActionListener target="#{usuarioController.usuario}" value="#{variavel _do_usuario}"/>
		</h:commandLink></div>
</rich:column>

Veja que vc tem que alterar o value do setPropertyActionListener, nele vc vai coloca a variavel que vc esta usando no dataTable

D

eu não conhecia esse setPropertyActionListener … da hora :smiley: é bem util :smiley:

Criado 2 de setembro de 2010
Ultima resposta 13 de jul. de 2012
Respostas 12
Participantes 8