Pessoal,
Estou desenvolvendo um pequeno aplicativo de cadastro e manutenção de usuários. Após o login, tenho um menu com várias opções, utilizando a tag “<h:outputLink>”.
Ao selecionar a opção “Consultar Usuário”, surge uma página contendo um campo de texto com o nome do usuário a ser consultado e um botão de comando.
Eu preencho o nome do usuário mas, ao clicar no botão de comando, o método que executa a tarefa de consultar o usuário não está sendo executado
Tentei colocar um comando “System.out.println…” dento do método de consulta para ver se o mesmo está sendo chamado, mas a mensagem não é exibida.
Arquivo faces.config.xml
<?xml version="1.0"?>
<faces-config xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd"
version="1.2">
<application>
<resource-bundle>
<base-name>messages</base-name>
<var>msg</var>
</resource-bundle>
<locale-config>
<default-locale>pt_BR</default-locale>
<supported-locale>en_US</supported-locale>
</locale-config>
</application>
<managed-bean>
<managed-bean-name>loginForm</managed-bean-name>
<managed-bean-class>beans.LoginFormBean</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
<managed-bean>
<managed-bean-name>UsuarioBean</managed-bean-name>
<managed-bean-class>beans.UsuarioBean</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
<navigation-rule>
<from-view-id>/login.jsp</from-view-id>
<navigation-case>
<from-outcome>menu</from-outcome>
<to-view-id>/menu.jsp</to-view-id>
</navigation-case>
</navigation-rule>
<navigation-rule>
<from-view-id>/login.jsp</from-view-id>
<navigation-case>
<from-outcome>falha</from-outcome>
<to-view-id>/erro_login.jsp</to-view-id>
</navigation-case>
</navigation-rule>
<navigation-rule>
<from-view-id>/cadastraUsuario.jsp</from-view-id>
<navigation-case>
<from-outcome>sucesso</from-outcome>
<to-view-id>/sucesso_cadastro.jsp</to-view-id>
</navigation-case>
</navigation-rule>
<navigation-rule>
<from-view-id>/cadastraUsuario.jsp</from-view-id>
<navigation-case>
<from-outcome>falha</from-outcome>
<to-view-id>/erro_cadastro.jsp</to-view-id>
</navigation-case>
</navigation-rule>
<navigation-rule>
<from-view-id>/consultaUsuario.jsp</from-view-id>
<navigation-case>
<from-outcome>sucesso</from-outcome>
<to-view-id>/exibeUsuario.jsp</to-view-id>
</navigation-case>
</navigation-rule>
<navigation-rule>
<from-view-id>/consultaUsuario.jsp</from-view-id>
<navigation-case>
<from-outcome>falha</from-outcome>
<to-view-id>/erro_consulta.jsp</to-view-id>
</navigation-case>
</navigation-rule>
</faces-config>
Página consultaUsuario.jsp
<%@taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<%@taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>WebUserManager - Consulta de Usuário</title>
</head>
<body>
<f:view>
<h:outputText value="WebUserManager - Consulta de Usuario" />
<br />
<br />
<h:panelGrid columns="1">
<h:outputText value="Entre com o nome do usuário a ser pesquisado" />
<br />
<h:outputText value="Nome :"></h:outputText>
<h:inputText value="#{UsuarioBean.nome}"></h:inputText>
<br />
<h:commandButton type="submit" value="Enviar" action="#{UsuarioBean.consultaUsuarioBean}"/>
<br />
<br />
</h:panelGrid>
<h:outputLink value = "menu.jsf">
<h:outputText value="< Voltar" />
</h:outputLink>
<br />
<br />
<h:outputLink value = "login.jsf">
<h:outputText value="< Sair" />
</h:outputLink>
</f:view>
</body>
</html>
Classe UsuarioBean
package beans;
import java.util.ArrayList;
import java.util.List;
import model.Usuario;
import dao.UsuarioDAO;
public class UsuarioBean {
private String cpf;
private String nome;
private String senha;
private String confirmaSenha;
private String emailPrincipal;
private String emailAlternativo;
private String telefone;
private String perfil;
private String status;
private String retorno="";
public UsuarioBean() {
}
// metodos get() e set()
/* ... */
// metodo validaSenha
public String validaSenha() {
if ( this.senha.equals(this.confirmaSenha )) {
Usuario meuUsuario = new Usuario();
meuUsuario.setCpf(this.cpf);
meuUsuario.setNome(this.nome);
meuUsuario.setSenha(this.senha);
meuUsuario.setConfirmaSenha(this.confirmaSenha);
meuUsuario.setEmailPrincipal(this.emailPrincipal);
meuUsuario.setEmailAlternativo(this.emailAlternativo);
meuUsuario.setTelefone(this.telefone);
meuUsuario.setPerfil(this.perfil);
//meuUsuario.setStatus(this.status);
UsuarioDAO meuDao = new UsuarioDAO();
meuDao.insereUsuarioDAO(meuUsuario);
this.retorno = "sucesso";
} else {
this.retorno = "falha";
}
return retorno;
}
// metodo ConsultaUsuarioBean
public String ConsultaUsuarioBean() {
System.out.println("Entrei no metodo ConsultaUsuarioBean");
UsuarioDAO outroDao = new UsuarioDAO();
Usuario u2 = outroDao.consultaUsuarioDAO(this.nome);
if (!u2.getNome().equals(this.nome)) {
this.retorno = "falha";
} else {
this.retorno = "sucesso";
this.nome = u2.getNome();
this.cpf = u2.getCpf();
this.emailPrincipal = u2.getEmailPrincipal();
this.emailAlternativo = u2.getEmailAlternativo();
this.telefone = u2.getTelefone();
this.perfil = u2.getPerfil();
}
return retorno;
}
// metodo getListaUsuarioBean
public List<UsuarioBean> getlistaUsuarioBean() {
List<UsuarioBean> listaBean = new ArrayList<UsuarioBean>();
Usuario u1 = new Usuario();
listaBean = u1.listaUsuario();
return listaBean;
}
}
Classe Usuario
package model;
import java.util.List;
import java.util.ArrayList;
import beans.UsuarioBean;
import dao.UsuarioDAO;
public class Usuario {
private String cpf;
private String nome;
private String senha;
private String confirmaSenha;
private String emailPrincipal;
private String emailAlternativo;
private String telefone;
private String perfil;
private String status;
public Usuario() {
}
// metodos get e set
/* ... */
public List<UsuarioBean> listaUsuario() {
List<UsuarioBean> listaBean = new ArrayList<UsuarioBean>();
List<Usuario> listaUsuario = new ArrayList<Usuario>();
UsuarioDAO dao1 = new UsuarioDAO();
listaUsuario = dao1.listaUsuarioDAO();
for (int i = 0; i < listaUsuario.size(); i++ ) {
UsuarioBean meuBean = new UsuarioBean();
meuBean.setCpf( listaUsuario.get(i).getCpf() );
meuBean.setNome( listaUsuario.get(i).getNome() );
meuBean.setEmailPrincipal( listaUsuario.get(i).getEmailPrincipal() );
meuBean.setEmailAlternativo( listaUsuario.get(i).getEmailAlternativo() );
meuBean.setTelefone( listaUsuario.get(i).getTelefone() );
meuBean.setPerfil( listaUsuario.get(i).getPerfil() );
listaBean.add(meuBean);
}
return listaBean;
}
}
Classe UsuarioDao
package dao;
import model.Usuario;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.List;
import java.util.ArrayList;
import javax.servlet.jsp.jstl.sql.Result;
import javax.servlet.jsp.jstl.sql.ResultSupport;
public class UsuarioDAO {
public void insereUsuarioDAO(Usuario u) {
Connection conexao = null;
ConectaMySQL con1 = new ConectaMySQL();
String sql = "INSERT INTO tb_usuario (usuario_cpf, usuario_nome, usuario_senha, usuario_confsenha, " +
"usuario_emailprinc, usuario_emailalter, usuario_telefone, " + "usuario_perfil"
+ ") VALUES (?,?,?,?,?,?,?,?)";
conexao = con1.obtemConexao();
try {
PreparedStatement pstmt = conexao.prepareStatement(sql);
pstmt.setString(1, u.getCpf());
pstmt.setString(2, u.getNome());
pstmt.setString(3, u.getSenha());
pstmt.setString(4, u.getConfirmaSenha());
pstmt.setString(5, u.getEmailPrincipal());
pstmt.setString(6, u.getEmailAlternativo());
pstmt.setString(7, u.getTelefone());
pstmt.setString(8, u.getPerfil());
pstmt.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
} finally {
con1.fechaConexao();
}
}
public void alteraUsuarioDAO(Usuario u) {
}
public void removeUsuarioDAO(Usuario u) {
}
public Usuario consultaUsuarioDAO(String nomePesq) {
String cpf;
String nome;
String emailPrinc;
String emailAlter;
String telefone;
String perfil;
Connection conexao = null;
ConectaMySQL con1 = new ConectaMySQL();
ResultSet rs;
PreparedStatement pstmt;
String sql_cons = "select usuario_cpf, usuario_nome, usuario_emailprinc, usuario_emailalter, usuario_telefone, usuario_perfil " +
" from tb_usuario where usuario_nome = ?";
conexao = con1.obtemConexao();
Usuario u1 = new Usuario();
try {
pstmt = conexao.prepareStatement(sql_cons);
pstmt.setString(1, nomePesq);
rs = pstmt.executeQuery();
while ( rs.next() ) {
nome = rs.getString(2);
if (nome.equals(null)) {
System.out.println("Usuario não encontrado");
u1 = null;
}
else {
cpf = rs.getString(1);
emailPrinc = rs.getString(3);
emailAlter = rs.getString(4);
telefone = rs.getString(5);
perfil = rs.getString(6);
u1.setCpf(cpf);
u1.setNome(nome);
u1.setEmailPrincipal(emailPrinc);
u1.setEmailAlternativo(emailAlter);
u1.setTelefone(telefone);
u1.setPerfil(perfil);
}
}
rs.close();
pstmt.close();
} catch (SQLException e) {
e.printStackTrace();
} finally {
con1.fechaConexao();
//rs.close();
}
return u1;
}
public List<Usuario> listaUsuarioDAO() {
Connection conexao = null;
ConectaMySQL con1 = new ConectaMySQL();
ResultSet rs;
PreparedStatement pstmt;
List<Usuario> listaUsuario = new ArrayList<Usuario>();
String sql_cons = "select usuario_cpf, usuario_nome, usuario_emailprinc, usuario_emailalter, " +
"usuario_telefone, usuario_perfil from tb_usuario ";
conexao = con1.obtemConexao();
try {
pstmt = conexao.prepareStatement(sql_cons);
rs = pstmt.executeQuery();
while (rs.next() ) {
Usuario u2 = new Usuario();
u2.setCpf(rs.getString(1));
u2.setNome(rs.getString(2));
u2.setEmailPrincipal(rs.getString(3));
u2.setEmailAlternativo(rs.getString(4));
u2.setTelefone(rs.getString(5));
u2.setPerfil(rs.getString(6));
listaUsuario.add(u2);
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
rs = null;
pstmt = null;
desalocaRecursos(pstmt, rs);
con1.fechaConexao();
}
return listaUsuario;
}
public Result getAll() throws SQLException{
Connection conexao = null;
ConectaMySQL con1 = new ConectaMySQL();
ResultSet rs;
PreparedStatement pstmt;
Result resultado;
String sql_cons = "select usuario_cpf, usuario_nome, usuario_emailprinc, usuario_emailalter, " +
"usuario_telefone, usuario_perfil from tb_usuario ";
conexao = con1.obtemConexao();
try {
pstmt = conexao.prepareStatement(sql_cons);
rs = pstmt.executeQuery();
resultado = ResultSupport.toResult(rs);
return resultado;
} finally {
rs = null;
pstmt = null;
desalocaRecursos(pstmt, rs);
con1.fechaConexao();
}
}
private void desalocaRecursos(PreparedStatement pstmt1, ResultSet rs1) {
try {
if (rs1 != null ) {
rs1.close();
}
if (pstmt1 != null) {
pstmt1.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
Ainda não cosegui entencer porque o método de ConsultaUsuarioBean não está sendo executado.
Será que alguém poderia me ajudar ?
Agradece,
Max