Boa tarde, o meu datatable esta lendo quantos registros tem no meu banco, mas esta colocando no datatable o valor 0.
Meu bean
package beans;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.event.ActionEvent;
import model.Usuario;
import dao.UsuarioDao;
@ManagedBean
@RequestScoped
public class UsuarioBeans{
private List<Usuario> usuarios;
private Usuario usuario = new Usuario();
public List<Usuario> getUsuarios() {
if(this.usuarios == null){
UsuarioDao usuarioDao = new UsuarioDao();
this.usuarios = usuarioDao.listarUsuario();
}
return usuarios;
}
public void setUsuarios(List<Usuario> usuarios){
this.usuarios = usuarios;
}
public Usuario getUsuarios1(){
return usuario;
}
private void setUsuario(Usuario usuario) {
// TODO Auto-generated method stub
this.usuario = usuario;
}
public Usuario getUsuario() {
return usuario;
}
public void salvarUsuarioBean(ActionEvent actionEvent){
try {
UsuarioDao usuarioDao = new UsuarioDao();
usuarioDao.addUsusario(usuario);
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
public void excluirUsuarioBean(ActionEvent actionEvent){
try {
UsuarioDao usuarioDao = new UsuarioDao();
usuarioDao.excluirUsuario(usuario);
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
public void updateUsuarioBean(){
UsuarioDao usuarioDao = new UsuarioDao();
usuarioDao.atualizarUsuario(usuario);
}
}
DataTable
<h:form>
<p:dataTable id=“tabela1” border=“1” value="#{usuarioBeans.usuarios}">
<p:column headerText=“Número GLP” style=“width:20px”>
<h:outputText value="#{usuarioBeans.usuario.n_glp}"/>
</p:column>
<p:column headerText="Nome" style="width:20px">
<h:outputText value="#{usuarioBeans.usuario.nome}"/>
</p:column>
<p:column headerText="Data de nascimento" style="width:20px">
<h:outputText value="#{usuarioBeans.usuario.dt_nasc}"/>
</p:column>
<p:column headerText="Telefone" style="width:20px">
<h:outputText value="#{usuarioBeans.usuario.telefone}"/>
</p:column>
<p:column headerText="E-mail" style="width:20px">
<h:outputText value="#{usuarioBeans.usuario.email}"/>
</p:column>
<p:column headerText="Configuração" style="width:20px">
</p:column>
<p></p>
</p:dataTable>
</h:form>
Aonde que esta colocando o valor 0?
Seu bean
package beans;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.event.ActionEvent;
import model.Usuario;
import dao.UsuarioDao;
@ManagedBean
@RequestScoped
public class UsuarioBeans{
private List<Usuario> usuarios;
private Usuario usuario = new Usuario();
public List<Usuario> getUsuarios() {
if(this.usuarios == null){
UsuarioDao usuarioDao = new UsuarioDao();
this.usuarios = usuarioDao.listarUsuario();
}
return usuarios;
}
public void setUsuarios(List<Usuario> usuarios){
this.usuarios = usuarios;
}
public Usuario getUsuarios1(){
return usuario;
}
private void setUsuario(Usuario usuario) {
// TODO Auto-generated method stub
this.usuario = usuario;
}
public Usuario getUsuario() {
return usuario;
}
public void salvarUsuarioBean(ActionEvent actionEvent){
try {
UsuarioDao usuarioDao = new UsuarioDao();
usuarioDao.addUsusario(usuario);
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
public void excluirUsuarioBean(ActionEvent actionEvent){
try {
UsuarioDao usuarioDao = new UsuarioDao();
usuarioDao.excluirUsuario(usuario);
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
public void updateUsuarioBean(){
UsuarioDao usuarioDao = new UsuarioDao();
usuarioDao.atualizarUsuario(usuario);
}
}
DataTable
<h:form>
<p:dataTable id="tabela1" border="1" value="#{usuarioBeans.usuarios}">
<p:column headerText="Número GLP" style="width:20px">
<h:outputText value="#{usuarioBeans.usuario.n_glp}"/>
</p:column>
<p:column headerText="Nome" style="width:20px">
<h:outputText value="#{usuarioBeans.usuario.nome}"/>
</p:column>
<p:column headerText="Data de nascimento" style="width:20px">
<h:outputText value="#{usuarioBeans.usuario.dt_nasc}"/>
</p:column>
<p:column headerText="Telefone" style="width:20px">
<h:outputText value="#{usuarioBeans.usuario.telefone}"/>
</p:column>
<p:column headerText="E-mail" style="width:20px">
<h:outputText value="#{usuarioBeans.usuario.email}"/>
</p:column>
<p:column headerText="Configuração" style="width:20px">
</p:column>
<p></p>
</p:dataTable>
</h:form>
Nas colunas n_glp e telefone e não traz as outras informações como nome, dt_nasc e email. Tirei um Print do meu dataTable e queria colocar aqui, como eu coloco ?
Cara debuga esse metodo do DAO que busca a listaUsuarios, verifica se realmente ele esta fazendo a consulta no banco e se a consulta esta certa. Uma boa pratica, quando for criar um bean crie sem nomes coletivos como usuariosBeans, cert usuarioBean, usuariosBean.
Outra coisa errada você esta chamando os valores do DataTable errado, você tem q declarar uma variavel “var=varivavel”,
exemplo:
<h1>JSF 2 dataTable example</h1>
<h:dataTable value="#{usuarioBean.listaUsuarios}" var="usuario"
styleClass="order-table">
<h:column>
<f:facet name="header">
<h:outputText value="Nome Usuario"/>
</f:facet>
<h:outputText value="#{usuario.nome}"/>
</h:column>
</h:dataTable>
você fez errado olha,
Valeu pela dica mr.michels. O meu método listarUsuario da class UsuarioDao não esta trazendo nada, esta null RSRSRSRS