Galera,
Queria uma ajuda numa situação. Eu tenho duas tabelas o banco: Usuario e TipoAcesso. Em usuario eu tenho uma chave estrangeira de TipoAcesso. Até ai tudo bem, mas quando eu vou exibir isso na view, eu só estou conseguindo listar os usuarios exibindo o ID de TipoAcesso e não a Descricao.
Ta saindo assim:
Nome - Email - Tipo acesso
Pablo - pv… - 1
E eu queria que ao inves do 1 saisse “Administrador” por exemplo.
Eu tava pensando em tratar usando um <c:choose> mas não conseguir desenvolver o raciocinio de como relacionar com o bean de tipos.
Agradeço desde já.
listar.xhtml
<?xml version='1.0' encoding='UTF-8' ?>
<!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:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:c="http://java.sun.com/jsp/jstl/core"
xmlns:p="http://primefaces.prime.com.tr/ui">
<h:head>
<title>Facelet Title</title>
</h:head>
<f:view>
<h:body>
<ui:composition template="/app/template/templateMaster.xhtml">
<ui:define name="content">
<h:form>
<c:if test="#{UsuarioBEAN.verificaSessao()}">
<p:dataTable var="itens" value="#{UsuarioBEAN.listaTodos}"
paginator="true" rows="10"
paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
rowsPerPageTemplate="5,10,15">
<f:facet name="header">
<h:outputText value="Id"/>
</f:facet>
<p:column>
<f:facet name="header">
<h:outputText value="Id"/>
</f:facet>
<h:outputText value="#{itens.idUsuario}"/>
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="Nome"/>
</f:facet>
<h:commandLink action="irParaAlterar">
<h:outputText value="#{itens.nome}"/>
<f:setPropertyActionListener target="#{UsuarioBEAN.login}" value="#{itens}"/>
</h:commandLink>
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="Email"/>
</f:facet>
<h:outputText value="#{itens.email}"/>
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="Telefone"/>
</f:facet>
<h:outputText value="#{itens.ddd} #{itens.telefone}"/>
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="Cargo"/>
</f:facet>
<h:outputText value="#{itens.cargo}"/>
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="Setor"/>
</f:facet>
<h:outputText value="#{itens.setor}"/>
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="Tipo Acesso"/>
</f:facet>
[size=18][color=red]<c:choose>
<c:when test="#{itens.tipoAcesso}">
<h:outputText value="teste0"/>
</c:when>
<c:otherwise>
<h:outputText value="Vazio"/>
</c:otherwise>
</c:choose>[/color][/size]
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="Ativo"/>
</f:facet>
<h:outputText value="#{itens.ativo}"/>
</p:column>
</p:dataTable>
</c:if>
</h:form>
</ui:define>
</ui:composition>
</h:body>
</f:view>
</html>
TipoAcesso.java
[code]/*
- To change this template, choose Tools | Templates
- and open the template in the editor.
*/
package br.com.pablo.entity;
/**
*
-
@author pablosouza
*/
public class TipoAcesso {private Integer idTipoAcesso;
private String nome;public TipoAcesso() {
}public Integer getIdTipoAcesso() {
return idTipoAcesso;
}public void setIdTipoAcesso(Integer idTipoAcesso) {
this.idTipoAcesso = idTipoAcesso;
}public String getNome() {
return nome;
}public void setNome(String nome) {
this.nome = nome;
}
}
[/code]
TipoAcessoDAO
[code]/*
- To change this template, choose Tools | Templates
- and open the template in the editor.
*/
package br.com.pablo.dao;
import br.com.pablo.entity.TipoAcesso;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
/**
*
-
@author pablosouza
*/
public class TipoAcessoDAO extends GenericDAO{public List getTodos() throws SQLException{
ArrayList tipos = new ArrayList();
String sql = “SELECT * FROM TB_TIPO_ACESSO”;
ResultSet rs = executarQuery(sql);
while(rs.next()){
TipoAcesso tipo = preencherDadosTipoAcesso(rs);
tipos.add(tipo);
}
return tipos;
}public TipoAcesso getTipoAcesso(Integer idTipoAcesso) throws SQLException{
String sql = “SELECT * FROM TB_TIPO_ACESSO WHERE ID_TIPO_ACESSO = ?”;
ResultSet rs = executarQuery(sql, idTipoAcesso);
TipoAcesso tipo = preencherDadosTipoAcesso(rs);
return tipo;
}public TipoAcesso preencherDadosTipoAcesso(ResultSet rs) throws SQLException{
TipoAcesso tipo = new TipoAcesso();
tipo.setIdTipoAcesso(rs.getInt(“ID_TIPO_ACESSO”));
tipo.setNome(rs.getString(“NOME”));
return tipo;
}public String getDescricaoTipoAcesso(Integer idTipoAcesso) throws SQLException{
String sql = “SELECT * FROM TB_TIPO_ACESSO WHERE ID_TIPO_ACESSO = ?”;
ResultSet rs = executarQuery(sql, idTipoAcesso);
TipoAcesso tipo = preencherDadosTipoAcesso(rs);
return tipo.getNome();
}
}
[/code]
TipoAcessoBEAN
[code]/*
- To change this template, choose Tools | Templates
- and open the template in the editor.
*/
package br.com.pablo.bean;
import br.com.pablo.dao.TipoAcessoDAO;
import br.com.pablo.entity.TipoAcesso;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.model.SelectItem;
/**
*
-
@author pablosouza
*/
@ManagedBean
@RequestScoped
public class TipoAcessoBEAN {private List tipos = null;
private TipoAcesso tipo = new TipoAcesso();
private List combo;/** Creates a new instance of TipoAcessoBEAN */
public TipoAcessoBEAN() {
}public TipoAcesso getTipo() {
return tipo;
}public void setTipo(TipoAcesso tipo) {
this.tipo = tipo;
}public List getTipos() {
return tipos;
}public void setTipos(List tipos) {
this.tipos = tipos;
}public List getTodos() throws SQLException {
return tipos = new TipoAcessoDAO().getTodos();
}public List getCombo() throws SQLException {
if (combo == null) {
ArrayList setores = (ArrayList) this.getTodos();
combo = new ArrayList();
for (TipoAcesso tipo : setores) {
combo.add(new SelectItem(tipo.getIdTipoAcesso(), tipo.getNome()));
}
}
return combo;
}
}
[/code]
Usuario.java
[code]/*
- To change this template, choose Tools | Templates
- and open the template in the editor.
*/
package br.com.pablo.entity;
import java.io.Serializable;
import java.util.List;
import javax.persistence.Id;
/**
*
-
@author alex
*/
public class Usuario implements Serializable {
private Integer idUsuario;
private String nome;
private Integer ddd;
private String telefone;
private String cargo;
private String email;
private String senha;
private Integer tipoAcesso;
private String setor;
private Integer ativo;
private List<Acompanhamento> acompanhamentos;
private List<Atendimento> atendimentos;
public Usuario() {
}
public Integer getAtivo() {
return ativo;
}
public void setAtivo(Integer ativo) {
this.ativo = ativo;
}
public String getCargo() {
return cargo;
}
public void setCargo(String cargo) {
this.cargo = cargo;
}
public Integer getDdd() {
return ddd;
}
public void setDdd(Integer ddd) {
this.ddd = ddd;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getSenha() {
return senha;
}
public void setSenha(String senha) {
this.senha = senha;
}
public String getSetor() {
return setor;
}
public void setSetor(String setor) {
this.setor = setor;
}
public String getTelefone() {
return telefone;
}
public void setTelefone(String telefone) {
this.telefone = telefone;
}
public List<Acompanhamento> getAcompanhamentos() {
return acompanhamentos;
}
public void setAcompanhamentos(List<Acompanhamento> acompanhamentos) {
this.acompanhamentos = acompanhamentos;
}
public List<Atendimento> getAtendimentos() {
return atendimentos;
}
public void setAtendimentos(List<Atendimento> atendimentos) {
this.atendimentos = atendimentos;
}
public Integer getIdUsuario() {
return idUsuario;
}
public void setIdUsuario(Integer idUsuario) {
this.idUsuario = idUsuario;
}
public Integer getTipoAcesso() {
return tipoAcesso;
}
public void setTipoAcesso(Integer tipoAcesso) {
this.tipoAcesso = tipoAcesso;
}
}
[/code]
UsuarioDAO
[code]/*
- To change this template, choose Tools | Templates
- and open the template in the editor.
*/
package br.com.pablo.dao;
import br.com.pablo.entity.Usuario;
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
/**
*
-
@author alex
*/
public class UsuarioDAO extends GenericDAO {public UsuarioDAO() {
}public void adcionarUsuario(Usuario usuario) throws SQLException {
String query = “INSERT INTO TB_USUARIO(NOME,DDD,TELEFONE,CARGO,”
+ “EMAIL,SENHA,SETOR,TIPO_ACESSO,ATIVO) VALUES (?,?,?,?,?,?,?,?,?)”;
executarComando(query,
usuario.getNome(),
usuario.getDdd(),
usuario.getTelefone(),
usuario.getCargo(),
usuario.getEmail(),
usuario.getSenha(),
usuario.getSetor(),
usuario.getTipoAcesso(),
usuario.getAtivo());
}public void atualizarUsuario(Usuario usuario) throws SQLException {
String query = “UPDATE TB_USUARIO SET NOME = ?,DDD = ?,TELEFONE = ?,CARGO = ?,”
+ “EMAIL = ?,SENHA = ?,SETOR = ?,TIPO_ACESSO = ?,ATIVO = ? WHERE ID_USUARIO = ?”;
executarComando(query,
usuario.getNome(),
usuario.getDdd(),
usuario.getTelefone(),
usuario.getCargo(),
usuario.getEmail(),
usuario.getSenha(),
usuario.getSetor(),
usuario.getTipoAcesso(),
usuario.getAtivo(),
usuario.getIdUsuario());
}public void deletarUsuario(Integer idUsuario) throws SQLException {
String query = “DELETE FROM TB_USUARIO WHERE ID_USUARIO = ?”;
executarComando(query, idUsuario);
}public Usuario getUsuario(Integer idUsuario) throws SQLException {
ResultSet rs = executarQuery(“SELECT * FROM TB_USUARIO WHERE ID_USUARIO = ?”, idUsuario);
Usuario usuario = preencherDadosUsuario(rs);
rs.close();
return usuario;
}public List getTodos() throws SQLException {
ArrayList usuarios = null;
ResultSet rs = (ResultSet) executarQuery(“SELECT * FROM TB_USUARIO”);
if (rs.next()) {
usuarios = new ArrayList();
do {
Usuario usuario = preencherDadosUsuario(rs);
usuarios.add(usuario);
} while (rs.next());
}
rs.close();
return usuarios;
}private static Usuario preencherDadosUsuario(ResultSet rs) throws SQLException {
Usuario toReturn = new Usuario();
toReturn.setIdUsuario(rs.getInt(“ID_USUARIO”));
toReturn.setNome(rs.getString(“NOME”));
toReturn.setDdd(rs.getInt(“DDD”));
toReturn.setTelefone(rs.getString(“TELEFONE”));
toReturn.setCargo(rs.getString(“CARGO”));
toReturn.setEmail(rs.getString(“EMAIL”));
toReturn.setSenha(rs.getString(“SENHA”));
toReturn.setSetor(rs.getString(“SETOR”));
toReturn.setTipoAcesso(rs.getInt(“TIPO_ACESSO”));
toReturn.setAtivo(rs.getInt(“ATIVO”));
return toReturn;
}public boolean isExiste(Usuario usuario) throws ClassNotFoundException, SQLException {
ResultSet rs = (ResultSet) executarQuery(“SELECT * FROM TB_USUARIO WHERE EMAIL = ? AND SENHA = ?”,
usuario.getEmail(),
usuario.getSenha());
if (rs.next()) {
preencherDadosUsuario(rs, usuario);
return true;
}
return false;
}private static Usuario preencherDadosUsuario(ResultSet rs, Usuario toReturn) throws SQLException {
toReturn.setIdUsuario(rs.getInt(“ID_USUARIO”));
toReturn.setNome(rs.getString(“NOME”));
toReturn.setDdd(rs.getInt(“DDD”));
toReturn.setTelefone(rs.getString(“TELEFONE”));
toReturn.setCargo(rs.getString(“CARGO”));
toReturn.setEmail(rs.getString(“EMAIL”));
toReturn.setSenha(rs.getString(“SENHA”));
toReturn.setSetor(rs.getString(“SETOR”));
toReturn.setTipoAcesso(rs.getInt(“TIPO_ACESSO”));
toReturn.setAtivo(rs.getInt(“ATIVO”));
return toReturn;
}
}
[/code]
UsuarioBEAN
[code]/*
- To change this template, choose Tools | Templates
- and open the template in the editor.
*/
package br.com.pablo.bean;
import br.com.pablo.dao.TipoAcessoDAO;
import br.com.pablo.dao.UsuarioDAO;
import br.com.pablo.entity.Usuario;
import java.sql.SQLException;
import java.util.LinkedList;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
/**
*
-
@author alex
*/
@ManagedBean(name=“UsuarioBEAN”)
@SessionScoped
public class UsuarioBEAN {private Usuario login = new Usuario();
private List usuarios;
private String descricaoTipoAcesso = “”;public List getUsuarios() {
return usuarios;
}public void setUsuarios(LinkedList usuarios) {
this.usuarios = usuarios;
}public Usuario getLogin() {
return login;
}public void setLogin(Usuario login) {
this.login = login;
}/** Creates a new instance of UsuarioBEAN */
public UsuarioBEAN() {
if (login == null) {
login = new Usuario();
}
}public String verificaLogin() throws SQLException, ClassNotFoundException {
UsuarioDAO dao = new UsuarioDAO();if (dao.isExiste(login)) { return "irParaIndex"; } return "refresh";
}
public boolean verificaSessao() {
if (login.getEmail() == null) { return false; } else { return true; }
}
public List getListaTodos() throws SQLException {
return this.usuarios = new UsuarioDAO().getTodos();
}
public String cadastrar() throws SQLException {
UsuarioDAO dao = new UsuarioDAO();dao.adcionarUsuario(login); return "irParaListar";
}
public String alterar() throws SQLException {
UsuarioDAO dao = new UsuarioDAO();dao.atualizarUsuario(login); return "irParaListar";
}
public String excluir() throws SQLException {
UsuarioDAO dao = new UsuarioDAO();dao.deletarUsuario(login.getIdUsuario()); return "irParaListar";
}
public String getTipoAcesso() throws SQLException {
return descricaoTipoAcesso = new TipoAcessoDAO().getDescricaoTipoAcesso(login.getTipoAcesso());
}
}
[/code]