Erro ao chamar Bean

2 respostas
tiago_

Pessoal, qnd vou “rodar” minha pagina o tomcat acusa o seguinte erro:

/pages/principal.xhtml: Property ‘ativar’ not found on type requisicao.web.UsuarioBean

tenho 4 classes no pacote requisicao.usuario:

Usuario
UsuarioDAO
UsuarioDAOHibernate
UsuarioRN

Tenho tb a classe bean q fica no pacote requisicao.web ! Ele diz q o erro esta na classe bean. Vou colar aqui o codigo da pagina e da classe usuarioBean:

<?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://www.java.sun.com/jsf/html"
	xmlns:f="http://www.java.sun.com/jsf/core">

<h:head>
	<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
	<title>Cadastro de usuários</title>
</h:head>
<h:body>
	<h1>Cadastro de usuários</h1>
	<h:form>
		<h:messages />
		<h:dataTable value="#{usuarioBean.lista}" var="usuario" rules="rows"
			cellpadding="5">
			<f:facet name="caption">
		  A listagem a seguir exibe a relacao de todos os usuários do sistema.
		</f:facet>
			<f:facet name="header">Listagem de Usuários</f:facet>
			<f:facet name="footer">Final da listagem</f:facet>
			<h:column>
				<h:commandLink action="#{usuarioBean.ativar}">
					<h:graphicImage library="imagens"
						name="usuario_ativo_#{usuarioBean.ativo}.png" style="border:0" />
					<f:setPropertyActionListener target="#{usuarioBean.usuario}" value="#{usuario}" />
				</h:commandLink>
			</h:column>
			<h:column>
				<f:facet name="header">Código</f:facet>
			#{usuario.codigo}
			</h:column>
			<h:column>
                <h:graphicImage libary="imagens" name="bandeira_#{usuario.idioma}.png "  />
			</h:column>
            <h:column>
				<f:facet name="header">Nome</f:facet>
			    #{usuario.nome}
			</h:column>
			<h:column>
			   <f:facet name="header">E-mail</f:facet>
			   <a href="mailto:#{usuario.email}">#{usuario.email}</a>
			   </h:column>
			   <h:column>
			   		<h:commandLink action="#{usuarioBean.editar}">
			   			<h:graphicImage library="imagens" name="editar16.png" style="border:0" />
			   			<f:setPropertyActionListener target="#{usuarioBean.usuario}" value="#{usuario}" />
			   		</h:commandLink>
			   	</h:column>
			   	<h:column>
			   	<h:commandLink action="#{usuarioBean.excluir}"
			   	onclick="if (!confirm('Confirma a exclusão do usuario#{usuario.nome} ?')) return false;">
			   	<h:graphicImage library="imagens" name="excluir16.png" style="border:0" />
			   	<f:setPropertyActionListner target="#{usuarioBean.usuario}" value="#{usuario}" />
			   	</h:commandLink>
			   </h:column>
			  </h:dataTable>
			  </h:form>
			 </h:body>
			 
</html>
package requisicao.web;

import javax.faces.application.FacesMessage;
import javax.faces.bean.*;
import javax.faces.context.FacesContext;

import java.util.List;

import requisicao.usuario.*;

@ManagedBean(name = "usuarioBean")
@RequestScoped
public class UsuarioBean {

	private Usuario usuario = new Usuario();

	private String confirmarSenha;
	private List<Usuario> lista;
	private String destinoSalvar;
	
	
	public String novo() {
		this.destinoSalvar = "usuarioSucesso";
		this.usuario = new Usuario();
		this.usuario.setAtivo(true);
		return "usuario";
	}

	public String ativar() {
		if (this.usuario.isAtivo())
			this.usuario.setAtivo(false);
		else
			this.usuario.setAtivo(true);

		UsuarioRN usuarioRN = new UsuarioRN();
		usuarioRN.salvar(this.usuario);
		return null;
	}
	

	public String editar() {
		this.confirmarSenha = this.usuario.getSenha();
		return "/publico/usuario";
	}
	
	public List<Usuario> getLista() {
		if (this.lista == null) {
			UsuarioRN usuarioRN = new UsuarioRN();
			this.lista = usuarioRN.listar();
		}
		return this.lista;
	}

	public String excluir() {
		UsuarioRN usuarioRN = new UsuarioRN();
		usuarioRN.excluir(this.usuario);
		this.lista = null;
		return null;
	}

	public String salvar() {
		FacesContext context = FacesContext.getCurrentInstance();

		String senha = this.usuario.getSenha();
		if (!senha.equals(this.confirmarSenha)) {
			FacesMessage facesMessage = new FacesMessage(
					"A senha não foi confirmada corretamente");
			context.addMessage(null, facesMessage);
			return null;
		}

		UsuarioRN usuarioRN = new UsuarioRN();
		usuarioRN.salvar(this.usuario);

		return "this.destinoSalvar";

	}

	public Usuario getUsuario() {
		return usuario;
	}

	public void setUsuario(Usuario usuario) {
		this.usuario = usuario;
	}

	public String getConfirmarSenha() {
		return confirmarSenha;
	}

	public void setConfirmarSenha(String confirmarSenha) {
		this.confirmarSenha = confirmarSenha;
	}

	public String getDestinoSalvar() {
		return destinoSalvar;
	}

	public void setDestinoSalvar(String destinoSalvar) {
		this.destinoSalvar = destinoSalvar;
	}

	public void setLista(List<Usuario> lista) {
		this.lista = lista;
	}
	
	

}

Obrigado

2 Respostas

R

Tenta colocar o codigo assim, acho que você está limpando a instância antes de salvar o objeto.

public String ativar() {  
         if (this.usuario.isAtivo()){
             this.usuario.setAtivo(false);
         }else{
             this.usuario.setAtivo(true); 
          }
          
         usuarioRN.salvar(this.usuario);
         UsuarioRN usuarioRN = new UsuarioRN();  
         return null; //Aqui retorna null mesmo ? se sim deixa assim mesmo se não verifica
     }
ViniGodoy

Tópico duplicado: http://www.guj.com.br/java/281062-erro-ao-chamar-bean#1481829

Criado 28 de agosto de 2012
Ultima resposta 28 de ago. de 2012
Respostas 2
Participantes 3