Fórum Erro em classe Bean - Netbenas #505879
30/12/2014
0
Olá,
Criei um método numa classe Bean para ativar/desativar um determinado usuário em uma tela de consulta onde são exibidos todos os usuários existentes no banco. Como tenho pouca prática em programação, não estou conseguindo resolver o problema. Segue abaixo código das duas classes em questão:
Usuario.java
package modelo;
import java.io.*;
import java.util.Objects;
import javax.persistence.*;
import org.hibernate.annotations.NaturalId;
@Entity
public class Usuario implements Serializable {
@Id
@GeneratedValue
private Integer codigo;
private String nome;
@NaturalId
private String login;
private String senha;
private String email;
private Boolean ativo;
private Boolean bloqueado;
public Integer getCodigo() {
return codigo;
}
public void setCodigo(Integer codigo) {
this.codigo = codigo;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getLogin() {
return login;
}
public void setLogin(String login) {
this.login = login;
}
public String getSenha() {
return senha;
}
public void setSenha(String senha) {
this.senha = senha;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public Boolean getAtivo() {
return ativo;
}
public void setAtivo(Boolean ativo) {
this.ativo = ativo;
}
public Boolean getBloqueado() {
return bloqueado;
}
public void setBloqueado(Boolean bloqueado) {
this.bloqueado = bloqueado;
}
@Override
public int hashCode() {
int hash = 5;
hash = 67 * hash + Objects.hashCode(this.codigo);
hash = 67 * hash + Objects.hashCode(this.nome);
hash = 67 * hash + Objects.hashCode(this.login);
hash = 67 * hash + Objects.hashCode(this.senha);
hash = 67 * hash + Objects.hashCode(this.email);
hash = 67 * hash + Objects.hashCode(this.ativo);
hash = 67 * hash + Objects.hashCode(this.bloqueado);
return hash;
}
@Override
public boolean equals(Object obj) {
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
final Usuario other = (Usuario) obj;
if (!Objects.equals(this.codigo, other.codigo)) {
return false;
}
if (!Objects.equals(this.nome, other.nome)) {
return false;
}
if (!Objects.equals(this.login, other.login)) {
return false;
}
if (!Objects.equals(this.senha, other.senha)) {
return false;
}
if (!Objects.equals(this.email, other.email)) {
return false;
}
if (!Objects.equals(this.ativo, other.ativo)) {
return false;
}
if (!Objects.equals(this.bloqueado, other.bloqueado)) {
return false;
}
return true;
}
}
UsuarioBean.java
package bean;
import java.util.List;
import javax.faces.application.FacesMessage;
import javax.faces.bean.*;
import javax.faces.context.FacesContext;
import modelo.*;
@ManagedBean(name="usuarioBean")
@RequestScoped
public class UsuarioBean {
private Usuario usuario = new Usuario();
private String confirmarSenha;
private List<Usuario> lista;
// Armazena as informações de para qual destino o método salvar deverá direcionar.
private String destinoSalvar;
// Cria uma nova instância do objeto usuário e configura a propriedade ativo para true.
public String novo() {
this.destinoSalvar = "usuarioSucesso";
this.usuario = new Usuario();
this.usuario.setAtivo(true);
// Indica que será exibida a página usuario.xhtml.
return "usuario";
}
// Abre a página usuario.xhtml com os dados do usuário a ser editado.
public String editar() {
this.confirmarSenha = this.usuario.getSenha();
return "/publico/usuario";
}
public String salvar() {
// Permite adicionar as mensagens de erro que possam vir a ser criadas.
FacesContext facesContext = FacesContext.getCurrentInstance();
String senha = this.usuario.getSenha();
/*
Compara o valor do campo senha com o valor do campo confirmação de senha.
Se houver diferença, será adicionada uma mensagem ao FacesContext.context.
*/
if (!senha.equals(this.confirmarSenha)) {
FacesMessage facesMessage = new FacesMessage("As senhas não conferem");
facesContext.addMessage(null, facesMessage);
/*
Indica que a execução da ação não cairá em uma nova página, mas permanecerá na mesma página de origem.
Dessa forma, o formulário é reexibido, apresentando a mensagem de erro. Nessa reexibição, todos os campos
são preenchidos com os valores enviados e o usuário realiza a correção solicitada na mensagem.
*/
return null;
}
/*
Caso a senha tenha sido confirmada corretamente, o usuário é salvo no banco de dados e
exibida a página usuarioSucesso.
*/
UsuarioRN usuarioRN = new UsuarioRN();
usuarioRN.salvar(this.usuario);
return this.getDestinoSalvar();
}
/*
Obtém o usuário clicado e repassa a classe UsuarioRN.excluir para que seja efetuada a exclusão
no banco de dados. Ao final, realiza um return null para que a página da listagem seja reexibida.
*/
public String excluir() {
UsuarioRN usuarioRN = new UsuarioRN();
usuarioRN.excluir(this.usuario);
// Força a recarga da lista de usuários pelo método getLista().
this.lista = null;
return null;
}
public String ativar() {
if (this.usuario.isAtivo()) { // O erro ocorre nesta linha. O Netbeans diz que a propriedade isAtivo não existe.
this.usuario.setAtivo(false);
}
else {
this.usuario.setAtivo(true);
}
UsuarioRN usuarioRN = new UsuarioRN();
usuarioRN.salvar(this.usuario);
return null;
}
// Fornece os dados para alimentar a listagem de usuários.
public List<Usuario> getLista() {
if (this.lista == null) {
UsuarioRN usuarioRN = new UsuarioRN();
this.lista = usuarioRN.listar();
}
return this.lista;
}
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;
}
}
Gostaria de uma orientação para resolver o problema.
Obrigada.
Criei um método numa classe Bean para ativar/desativar um determinado usuário em uma tela de consulta onde são exibidos todos os usuários existentes no banco. Como tenho pouca prática em programação, não estou conseguindo resolver o problema. Segue abaixo código das duas classes em questão:
Usuario.java
package modelo;
import java.io.*;
import java.util.Objects;
import javax.persistence.*;
import org.hibernate.annotations.NaturalId;
@Entity
public class Usuario implements Serializable {
@Id
@GeneratedValue
private Integer codigo;
private String nome;
@NaturalId
private String login;
private String senha;
private String email;
private Boolean ativo;
private Boolean bloqueado;
public Integer getCodigo() {
return codigo;
}
public void setCodigo(Integer codigo) {
this.codigo = codigo;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getLogin() {
return login;
}
public void setLogin(String login) {
this.login = login;
}
public String getSenha() {
return senha;
}
public void setSenha(String senha) {
this.senha = senha;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public Boolean getAtivo() {
return ativo;
}
public void setAtivo(Boolean ativo) {
this.ativo = ativo;
}
public Boolean getBloqueado() {
return bloqueado;
}
public void setBloqueado(Boolean bloqueado) {
this.bloqueado = bloqueado;
}
@Override
public int hashCode() {
int hash = 5;
hash = 67 * hash + Objects.hashCode(this.codigo);
hash = 67 * hash + Objects.hashCode(this.nome);
hash = 67 * hash + Objects.hashCode(this.login);
hash = 67 * hash + Objects.hashCode(this.senha);
hash = 67 * hash + Objects.hashCode(this.email);
hash = 67 * hash + Objects.hashCode(this.ativo);
hash = 67 * hash + Objects.hashCode(this.bloqueado);
return hash;
}
@Override
public boolean equals(Object obj) {
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
final Usuario other = (Usuario) obj;
if (!Objects.equals(this.codigo, other.codigo)) {
return false;
}
if (!Objects.equals(this.nome, other.nome)) {
return false;
}
if (!Objects.equals(this.login, other.login)) {
return false;
}
if (!Objects.equals(this.senha, other.senha)) {
return false;
}
if (!Objects.equals(this.email, other.email)) {
return false;
}
if (!Objects.equals(this.ativo, other.ativo)) {
return false;
}
if (!Objects.equals(this.bloqueado, other.bloqueado)) {
return false;
}
return true;
}
}
UsuarioBean.java
package bean;
import java.util.List;
import javax.faces.application.FacesMessage;
import javax.faces.bean.*;
import javax.faces.context.FacesContext;
import modelo.*;
@ManagedBean(name="usuarioBean")
@RequestScoped
public class UsuarioBean {
private Usuario usuario = new Usuario();
private String confirmarSenha;
private List<Usuario> lista;
// Armazena as informações de para qual destino o método salvar deverá direcionar.
private String destinoSalvar;
// Cria uma nova instância do objeto usuário e configura a propriedade ativo para true.
public String novo() {
this.destinoSalvar = "usuarioSucesso";
this.usuario = new Usuario();
this.usuario.setAtivo(true);
// Indica que será exibida a página usuario.xhtml.
return "usuario";
}
// Abre a página usuario.xhtml com os dados do usuário a ser editado.
public String editar() {
this.confirmarSenha = this.usuario.getSenha();
return "/publico/usuario";
}
public String salvar() {
// Permite adicionar as mensagens de erro que possam vir a ser criadas.
FacesContext facesContext = FacesContext.getCurrentInstance();
String senha = this.usuario.getSenha();
/*
Compara o valor do campo senha com o valor do campo confirmação de senha.
Se houver diferença, será adicionada uma mensagem ao FacesContext.context.
*/
if (!senha.equals(this.confirmarSenha)) {
FacesMessage facesMessage = new FacesMessage("As senhas não conferem");
facesContext.addMessage(null, facesMessage);
/*
Indica que a execução da ação não cairá em uma nova página, mas permanecerá na mesma página de origem.
Dessa forma, o formulário é reexibido, apresentando a mensagem de erro. Nessa reexibição, todos os campos
são preenchidos com os valores enviados e o usuário realiza a correção solicitada na mensagem.
*/
return null;
}
/*
Caso a senha tenha sido confirmada corretamente, o usuário é salvo no banco de dados e
exibida a página usuarioSucesso.
*/
UsuarioRN usuarioRN = new UsuarioRN();
usuarioRN.salvar(this.usuario);
return this.getDestinoSalvar();
}
/*
Obtém o usuário clicado e repassa a classe UsuarioRN.excluir para que seja efetuada a exclusão
no banco de dados. Ao final, realiza um return null para que a página da listagem seja reexibida.
*/
public String excluir() {
UsuarioRN usuarioRN = new UsuarioRN();
usuarioRN.excluir(this.usuario);
// Força a recarga da lista de usuários pelo método getLista().
this.lista = null;
return null;
}
public String ativar() {
if (this.usuario.isAtivo()) { // O erro ocorre nesta linha. O Netbeans diz que a propriedade isAtivo não existe.
this.usuario.setAtivo(false);
}
else {
this.usuario.setAtivo(true);
}
UsuarioRN usuarioRN = new UsuarioRN();
usuarioRN.salvar(this.usuario);
return null;
}
// Fornece os dados para alimentar a listagem de usuários.
public List<Usuario> getLista() {
if (this.lista == null) {
UsuarioRN usuarioRN = new UsuarioRN();
this.lista = usuarioRN.listar();
}
return this.lista;
}
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;
}
}
Gostaria de uma orientação para resolver o problema.
Obrigada.
Sgrandini
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)