Java 6 - Não consigo imprimir dados do Banco usando Datatable/ListDataModel

29 respostas Resolvido
datatablejava
F

Boa tarde, eu estou começando a estudar Java. Estou seguindo um curso online, mas estou com um erro e não consigo prosseguir. Gostaria de compartilhar minha dificuldade com vcs para ver se alguém pode me ajudar.
Meu projeto até então, tem duas tabelas, mas a tabela que estou mexendo atualmente e tentando listar os dados dela na tela, é fornecedores. Não dá nenhum erro. O código exibe a msg de que não foram encontrados nenhum registro. Meu código está igual ao do professor, mas como o curso foi barato e on line, o professor não está com boa vontade para me ajudar.

Se alguem puder me ajudar, seguem abaixo meus arquivos:


fornecedores.xhtml

<ui:composition xmlns="link"
xmlns:h="link"
xmlns:f="link"
xmlns:p="link"
xmlns:ui="link"
template=“link”>

<ui:define name="menu">
	<ui:include src="/includes/menu.xhtml" />
	<!-- Puxando o menu p/ a página principal -->
</ui:define>

<ui:define name="fornecedores">
	<h:form>
	<p:dataTable emptyMessage="Nenhum registro encontrado." value="#{mbfornecedores.itens}" var="item">

		<p:column headerText="Código do Fornecedor">
			<h:outputText value="#{item.codfornecedor}" />
		</p:column>

		<p:column headerText="Nome do Fornecedor">
			<h:outputText value="#{item.descricao}" />
		</p:column>

	</p:dataTable>
	</h:form>
</ui:define>

</ui:composition>


Classe FornecedoresBean

package br.com.farmacia.bean;

import java.sql.SQLException;

import java.util.ArrayList;

import javax.annotation.PostConstruct;

import javax.faces.bean.ManagedBean;

import javax.faces.bean.ViewScoped;

import javax.faces.model.ListDataModel;

import br.com.farmacia.DAO.FornecedoresDAO;

import br.com.farmacia.domain.Fornecedores;
@ManagedBean(name=mbfornecedores)

@ViewScoped

public class FornecedoresBean {

private ListDataModel itens;
//get e set
public ListDataModel<Fornecedores> getItens() {
	return itens;
}

public void setItens(ListDataModel<Fornecedores> itens) {
	this.itens = itens;
}
	
	//o comando @PostConstruct serve para informar ao sistema, que assim que eu entrar na pagina (a pagina for iniciada, o evento 	 
	//seja executado, sem q haja a necessidade de um clique
	@PostConstruct
	public void prepararPesquisa() {
		
		try {
			FornecedoresDAO fdao = new FornecedoresDAO();
			ArrayList<Fornecedores>lista = fdao.listar();
			itens = new ListDataModel<Fornecedores>(lista);				
			//estou convertendo minha variavel LISTA em DATAMODEL, pois meu array 
			//pois meu array principal estah assim. (estou instanciando minha variavel e dizendo q ela eh do tipo ListDataModel
			//coloco lista entre parenteses pq estou colocando itens dentro dela
							
		} catch (SQLException  ex) {
			ex.printStackTrace();
		} 
	}

}


FornecedoresDao

package br.com.farmacia.DAO;

import java.sql.Connection;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.util.ArrayList;

import br.com.farmacia.domain.Fornecedores;
import br.com.farmacia.factory.ConexaoFactory;

public class FornecedoresDAO {

public void salvar(Fornecedores f) throws SQLException{
	StringBuilder sql = new StringBuilder();
	sql.append("INSERT INTO fornecedores ");
	sql.append("(descricao) ");
	sql.append("VALUES (?)");
	
	Connection conexao = ConexaoFactory.conectar();
	
	PreparedStatement comando = conexao.prepareStatement(sql.toString());
	comando.setString(1, f.getDescricao());
	comando.executeUpdate();
}

public void excluir (Fornecedores f) throws SQLException{
	StringBuilder sql = new StringBuilder();
	sql.append("DELETE FROM fornecedores ");
	sql.append("WHERE codfornecedor = ? ");
	
	Connection conexao = ConexaoFactory.conectar();
	
	PreparedStatement comando = conexao.prepareStatement(sql.toString());
	comando.setInt(1, f.getCodFornecedor());
	comando.executeUpdate();		
}

public void editar(Fornecedores f) throws SQLException{
	StringBuilder sql = new StringBuilder();
	sql.append("UPDATE fornecedores ");
	sql.append("SET descricao = ? ");
	sql.append("WHERE codfornecedor = ? ");
	
	Connection conexao = ConexaoFactory.conectar();
	
	PreparedStatement comando = conexao.prepareStatement(sql.toString());
	comando.setString(1, f.getDescricao());
	comando.setInt(2, f.getCodFornecedor());
	comando.executeUpdate();				
	
}	

public Fornecedores buscaPorCodigo(Fornecedores f) throws SQLException{
	
	StringBuilder sql = new StringBuilder();
	sql.append("SELECT codfornecedor, descricao ");
	sql.append("FROM fornecedores ");
	sql.append("WHERE codfornecedor = ? ");
	
	Connection conexao = ConexaoFactory.conectar();
	
	PreparedStatement comando = conexao.prepareStatement(sql.toString());
	
	comando.setInt(1, f.getCodFornecedor());
	
	ResultSet resultado = comando.executeQuery();
	Fornecedores retorno = null;
	
	if (resultado.next()) {
		retorno = new Fornecedores();
		retorno.setCodFornecedor(resultado.getInt("codfornecedor"));
		retorno.setDescricao(resultado.getString("descricao"));
	}
	
	return retorno;		
	
}	

public ArrayList<Fornecedores>listar() throws SQLException{
	
	StringBuilder sql = new StringBuilder();
	sql.append("SELECT codfornecedor, descricao ");
	sql.append("FROM fornecedores ");
	sql.append("ORDER BY descricao ASC ");
	
	Connection conn = ConexaoFactory.conectar();
	
	PreparedStatement comando = conn.prepareStatement(sql.toString());		
			
	ResultSet resultado = comando.executeQuery();
	
	ArrayList<Fornecedores>lista = new ArrayList<Fornecedores>();
	
	while(resultado.next()) {
		Fornecedores f = new Fornecedores();
		f.setCodFornecedor(resultado.getInt("codfornecedor"));
		f.setDescricao(resultado.getString("descricao"));
		
		lista.add(f);
	}
	
	return lista;
	
}	

public ArrayList <Fornecedores> buscarPorDescricao(Fornecedores f) throws SQLException{
	StringBuilder sql = new StringBuilder();
	sql.append("SELECT codfornecedor, descricao ");
	sql.append("FROM fornecedores ");
	sql.append("WHERE descricao LIKE ? "); //toda vez que eu utilizar o like, la na exibicao devo colocar "%"
	sql.append("ORDER BY descricao ASC ");
	
	Connection conexao = ConexaoFactory.conectar();
	
	PreparedStatement comando = conexao.prepareStatement(sql.toString());	
	
	comando.setString(1, "%" + f.getDescricao() + "%");
	
	ResultSet resultado = comando.executeQuery();
	
	ArrayList <Fornecedores> lista = new ArrayList <Fornecedores>();
	
	while(resultado.next()) {
		Fornecedores item = new Fornecedores();
		item.setCodFornecedor(resultado.getInt("codfornecedor"));
		item.setDescricao(resultado.getString("descricao"));
		
		lista.add(item);
	}
	
	return lista;
}	

public static void main(String[] args) {/*
	 Fornecedores f1 = new Fornecedores();
	f1.setDescricao("Fornecedor Paulista");
	Fornecedores f2 = new Fornecedores();
	f2.setDescricao("Fornecedor Portugues");
	
	FornecedoresDAO fdao = new FornecedoresDAO();
	
	try {
		fdao.salvar(f1);
		fdao.salvar(f2);
		System.out.println("Dados salvos com sucesso!!!");
	} catch (SQLException ex) {			
		ex.printStackTrace();
		System.out.println("Dados não foram salvos. Verifique o ocorrido.");
	}
	
	
	Fornecedores f1 = new Fornecedores();
	f1.setCodFornecedor(2);
	
	FornecedoresDAO fdao = new FornecedoresDAO();
	
	try {
		fdao.excluir(f1);
		
		System.out.println("Dados deletados com sucesso!!!");
	} catch (SQLException ex) {			
		ex.printStackTrace();
		System.out.println("Dados não foram deletados. Verifique o ocorrido.");
	}
	
	
	Fornecedores f1 = new Fornecedores();
	f1.setCodFornecedor(1);
	f1.setDescricao("Rodrigues");
	
	FornecedoresDAO fdao = new FornecedoresDAO();
	
	try {
		fdao.editar(f1);
		
		System.out.println("Dados editados com sucesso!!!");
	} catch (SQLException ex) {			
		ex.printStackTrace();
		System.out.println("Dados não foram editados. Verifique o ocorrido.");
	}
	
	
	
	
	 Fornecedores f1 = new Fornecedores();
		f1.setCodFornecedor(3);
		Fornecedores f2 = new Fornecedores();
		f2.setCodFornecedor(10);
		
		FornecedoresDAO fdao = new FornecedoresDAO();
		
		try {
			Fornecedores f3 = fdao.buscaPorCodigo(f1);
			Fornecedores f4 = fdao.buscaPorCodigo(f2);
			System.out.println("Resultado 1: " + f3);
			System.out.println("Resultado 2: " + f4);
		} catch (SQLException ex) {			
			ex.printStackTrace();
			System.out.println("Erro ao buscar. Verifique o ocorrido.");
		}
	
		
		
		FornecedoresDAO fdao = new FornecedoresDAO();
		
		try {
		
			ArrayList<Fornecedores> lista = fdao.listar();
			for(Fornecedores f: lista) {
				System.out.println("Resultado:" + f);
			}
		} catch (SQLException ex) {			
			ex.printStackTrace();
			System.out.println("Erro ao buscar. Verifique o ocorrido.");
		}
	
	
	Fornecedores f1 = new Fornecedores();
	f1.setDescricao("Tes");
	FornecedoresDAO fdao = new FornecedoresDAO();
	
	try {
		
		ArrayList<Fornecedores> lista = fdao.buscarPorDescricao(f1);
		for(Fornecedores f: lista) {
			System.out.println("Resultado:" + f);
		}
	} catch (SQLException ex) {			
		ex.printStackTrace();
		System.out.println("Erro ao buscar. Verifique o ocorrido.");
	}
}

*/

FornecedoresDAO fdao = new FornecedoresDAO();

try {

	ArrayList<Fornecedores> lista = fdao.listar();
	for(Fornecedores f: lista) {
		System.out.println("Resultado:" + f);
	}
} catch (SQLException ex) {			
	ex.printStackTrace();
	System.out.println("Erro ao buscar. Verifique o ocorrido.");
}
}

}


Como sou nova aqui, se eu postei errado, me perdoem.

Espero que alguém possa me ajudar e desde já sou grata.

Muito obrigada.

29 Respostas

F

Antes de mais nada, uma dúvida: Por que está usando Java 6?

F

Eu não sabia que o curso era Java 6. Só depois que paguei. Quero aprender Java, depois que eu aprender, que seja o J6, posso migrar para o Java 7 ou 8. Mas aprendendo através de projeto, acho que fica menos dificil de aprender.

Obrigada

E

Bom dia @FabiRJ
Voce disse que seu código esta igual ao do professor, Entao estou considerando que não a erro. Repare que nesta linha aqui
<p:dataTable emptyMessage="Nenhum registro encontrado." value="#{mbfornecedores.itens}" var="item">
da tua pagina fornecedores.xhtml tem essa validação. de nenhum registro encontrado. então se no bean mbfornecedores.itens não estiver retornando valores corretamente. vai aparecer a mensagem. e se estiver tudo certo, mas não tiver nenhum registro inserido na tabela fornecedores vai aparecer essa mensagem também. abre o banco de dados e da um select * from fornecedores para ver se tem algum registro inserido na tabela fornecedores. e se puder posta um print da mensagem que você disse que aparece para você. fica mais fácil para eu ou outra pessoa que souber. entender seu problema e te ajudar.

Repare também que na sua classe FornecedoresDAO tem o comando de inserir registros na tabela
tabela fornecedores. então primeiro vc tem que fazer a tela do teu projeto que insere registros funcionar, para só depois listar a tabela fornecedores. ou inserir os registros manualmente na tabela fornecedores via banco de dados só para teste

public class FornecedoresDAO {
public void salvar(Fornecedores f) throws SQLException{
	StringBuilder sql = new StringBuilder();
	sql.append("INSERT INTO fornecedores ");
	sql.append("(descricao) ");
	sql.append("VALUES (?)");
	
	Connection conexao = ConexaoFactory.conectar();
	
	PreparedStatement comando = conexao.prepareStatement(sql.toString());
	comando.setString(1, f.getDescricao());
	comando.executeUpdate();
}
F

Boa tarde Elanod, muito obrigada pela disponibilidade em querer me ajudar.

Então, eu criei um método void main dentro da classe FornecedoresDao para inserir alguns fornecedores e testar se realmente a conexão funciona. Dessa forma que inseri alguns dados. Na tabela existem registros com fornecedores. Segue a imagem.
bd-tbfornecedor

No console está aparecendo um erro que não sei o que pode ser:

O jar do mysql está na pasta lib e funciona, pois consegui inserir dados pela classe. Tenho outros projetos no eclipse que tbm funcionam com este jar.

Quem puder me ajudar, ficarei muito agradecida.

Boa tarde

E

Boa tarde. vc disse que consegui testar a classe FornecedoresDAO. testa somente a classe de conexão via java, e ve no console se o erro esta aparecendo. e se não tiver erro na conexão via java, teste por um método void main, ou teste de alguma forma a classe onde acha que esta dando o erro. pode ser erro de sql também. porque esta parecendo que teu erro é na conexão, ou ema algum sql que esta sendo informado com erro. se puder, faz assim por exemplo. testa via java a conexão e testa via java também a listagem que é onde “você disse que acontece o erro” e e vai colocando System.out.println onde vc tem certeza que passou sem erro. e quando executar, acompanha visualmente pelo console essas mensagens que vc inseriu. com objetivo de saber apartir de qual linha do código é que é gerado o erro java.sql.SQLException.
. por exemplo assim

public ArrayList<Fornecedores>listar() throws SQLException{
	System.out.println("passou sem erro aqui1");
	StringBuilder sql = new StringBuilder();
	sql.append("SELECT codfornecedor, descricao ");
	sql.append("FROM fornecedores ");
	sql.append("ORDER BY descricao ASC ");
	
	Connection conn = ConexaoFactory.conectar();
	System.out.println("passou sem erro aqui2");
	PreparedStatement comando = conn.prepareStatement(sql.toString());		
			
	ResultSet resultado = comando.executeQuery();
	System.out.println("passou sem erro aqui3");
	ArrayList<Fornecedores>lista = new ArrayList<Fornecedores>();
	
	while(resultado.next()) {
		Fornecedores f = new Fornecedores();
		f.setCodFornecedor(resultado.getInt("codfornecedor"));
		f.setDescricao(resultado.getString("descricao"));
		
		lista.add(f);
	}
	System.out.println("passou sem erro aqui4");
	return lista;
	System.out.println("passou sem erro aqui5");
}

se puder. De uma lida neste link aqui também para ver se teu erro não é o mesmo

F

Boa tarde Elanod,

mais uma vez muito obrigada em tentar me ajudar :wink:. Passei ontem a tarde lendo o link que vc enviou e tentei fazer o que a galera fez, mas não funcionou. Fiz o teste que vc pediu para fazer na classe FornecedoresDao, mas não emitiu nenhuma mensagem, continuou com o mesmo erro que postei anteriormente.
Não sei mais o que fazer. Pois já pesquisei diversos dias na internet e está dificil de conseguir uma solução. :cry:

Se você souber mais alguma coisa que eu possa fazer ou qualquer outra pessoa que puder dar uma luz, ficarei muito agradecida.

Elanod, muito obrigada por estar me ajudando!

E

Verificara a sua classe Conexao que é parecida com essa minha classe abaixo. e ve se não tem nenhum erro, ou se falta algum código nesta sua classe. Faz um teste via console do java só dessa sua conexão. Esse teste é para vc diminuir o problema, porque pelo q vi. já se sabe que o erro não é na pagina .xhtml.
Entao testa só a sua conexão via console do java. se aparecer o erro nela, vc não precisara procurar em outros lugares. e se o erro não estiver na conexao vc procurar o erro usando o system
System.out.println . tenta entender como se descobre erro em uma linha usando System.out.println. conforme expliquei no post anterior. eu alterei até um exemplo do teu código no post anterior para vc entender melhor. E se certifica de que vc colou o arquivo .jar correto e compativel com mysql instalado na tua macna. dentro da pasta WEB-INF/lib exemplo eu uso um mysql-connector-java-5.0.4-bin.jar mas o seu não precisar ser igual ao meu mais um correspondente com o da instalação do mysql da sua macna. teu erro pode não ser esse, mas achei melhor comentar também.

public class Connection {

	private String url = "jdbc:mysql://ws147:3306/clinica";
	private String usuario = "root";
	private String senha = "root";
	private String Driver = "com.mysql.jdbc.Driver";

	public String getDriver() {
		return Driver;
	}

	public void setDriver(String driver) {
		Driver = driver;
	}

	public String getUrl() {
		return url;
	}

	public void setUrl(String url) {
		this.url = url;
	}

	public String getUsuario() {
		return usuario;
	}

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

	public String getSenha() {
		return senha;
	}

	public void setSenha(String senha) {
		this.senha = senha;
	}

}
M

O erro “No suitable driver found” quer dizer que o driver jdbc não foi encontrado

Baixa ele e coloca na pasta lib do servidor

https://www.mysql.com/products/connector/

F

Olá Mike, boa tarde. Muito obrigada por tentar me ajudar. O drive do MySQL está na pasta LIB. É o mesmo drive que utilizo em outros projetos de estudo. Mas são tudo Java7. O único que é Java6 é este. Mas no teste de conexão, a classe conecta. Veja o print:


Na classe FornecedoresDao, eu criei um método para inserir fornecedores e inseriu normalmente. Se tivesse com problema no Drive do MySQL, acredito que não faria a inserção.

Será que por ser Java6, alguma coisa no código, na conexão que está com problema? Como eu estou iniciando, não sei o que pode ser…

Muito obrigada por tentar me ajudar…

F

Olá Elanod, boa tarde.

Eu não havia tirado aquele código que vc pediu para por, na classe FornecedoresDao, não havia tirado. Aí acrescentei esta linha dentro do Método conectar, da Classe ConexaoFactory:

DriverManager.registerDriver(new com.mysql.jdbc.Driver());

Quando eu restartei o projeto, aconteceu novo erro e passou pelas paradas que coloquei no método:
System.out.println(“passou sem erro aqui4”);

Veja a imagem abaixo:

Mas continuo sem saber o que pode ser…

Muito obrigada pela ajuda

J

Verificou a compatibilidade do Driver de conexão com o Java 6?

F

Olá Jonathan_Medeiros, boa tarde.

Eu já fiz inserção de dados nesse projeto, na tabela Fornecedores e no teste de conexão, a Classe deu OK.

Obrigada por tentar me ajudar.

E

Boa tarde @FabiRJ . esse código

DriverManager.registerDriver(new com.mysql.jdbc.Driver()); que vc inseriu provavelmente era oque estava faltando. se vc copiou do seu curso essa Classe ConexaoFactory. da uma olha nessa classe se não faltou vc copiar justamente um código que tinha essa mesma finalidade.

*esses códigos System.out.println. que vc inseriu bem em ArrayListlista() throws …
como vc já se deu conta são só para teste. e no seu caso como imprimi todas os comentarios. significa que nesse local onde vc, inseriu eles não, tem nenhum erro parando o programa.
ai o erro parando o programa e em outro lugar.

*sobre esse novo erro que apareceu.
Tudo indica que ele esta na pagina fornecedores.xhtml em value="#{item.cofornecedor}" . A mensagem toda deu a entender
que na classe br.com.farmacia.domain.Fornecedores. não existe a propriedade codfornecedor.
Veja nessa classe se essa propriedade nao esta com um letra maiuscula diferente ou nome diferente.
. No caso vc tem que colocar em fornecedores.xhtml em value="#{item.cofornecedor}" um nome igual ao que esta na Classe
Formecedores ou nessa classe item.cofornecedor. Se não conseguir.Se puder posta um print dessa Classebean item.cofornecedor e da classe br.com.farmacia.domain.Fornecedores
e se eu consegui identificar alguma coisa eu digo

F

Bom dia Elanod, hoje a tarde eu conseguirei ver. Me desculpe a demora, tive alguns problemas e não consegui dar prosseguimento em nosso raciocínio.

A tarde eu vejo e te respondo aqui. Muito obrigada mais uma vez :relaxed:!

F

Olá Elanod, boa noite.

Refiz o projeto no trabalho e em casa nesses dias e o mesmo erro continua. E nos dois computadores o erro é igual. Não sei mais o que testar. Mudei até o nome da variável, dos campos na tabela…

Segue abaixo o erro:

Se alguém ainda conseguir me ajudar, ficarei muito agradecida…

M

O erro diz que não existe a coluna codigof a onde você quer inserir

Posta a query e verifica se esse é o nome da coluna mesmo

F

Olá Mike.

Verifiquei tudo e o banco eu não tinha alterado os campos, pois nas classes eu alterei. Aí, refiz o banco e testei todos os métodos do FornecedoresDAO. Inserir, Excluir, Listar, Editar, Buscar por Código e Buscar por nome. Todos os métodos funcionaram.

Mas na hora de listar na página xhtml, não lista. E agora, não dá nenhum erro.

Muito obrigada pela ajuda

M

Posta o código da sua página xhtml, do Bean e do DAO.

F

Olá Mike, bom dia.

Seguem as imagens. A imagem do DAO, eu só printei a tela do Listar, pois é o método diretamente relacionado ao problema em questão.

fornecedores.xhtml

FornecedoresBean

FornecedoresDAO

Muito obrigada pela ajuda.

M

Pelo que eu vi, você está querendo iterar sobre o ArrayList itens, mas em nenhum momento você chama o método prepararPesquisa para popular a lista

EDIT:
Dependendo da versão que você estiver utilizando, não é mais necessário utilizar um ListDataModel, apenas uma coleção qualquer ja da certo para a datatable

F

Olá Mike, boa tarde. Entendi o que vc quis dizer.

No meu arquivo xhtml, chamo o FornecedoresBean através do value="#{MBFornecedores.itens}", pois o meu MangedBean é MBFornecedores. E itens, recebe dentro de prepararPesquisa() minha “lista”.

Você sabe o que eu posso fazer?

Muito obrigada pela ajuda…

M

Só que em nenhum momento você chama o método prepararPesquisa()

Copia o método abaixo

@PostConstruct
public void init() {
    prepararPesquisa();
}

A anotação @PostConstruct faz com que o método anotado seja executado assim que o bean for criado

F

A anotação @PostConstruct é para que os dados na listagem sejam atualizados sem que haja a necessidade de um refresh ou ação do usuário. Quando eu entro na página fornecedores.xhtml, não preciso ter mais nenhuma ação. Ele já vai listar para mim os fornecedores.

No vídeo do professor, que até agora não me respondeu, ele não chama o prepararPesquisa(). Como eu posso chamar este método no xhtml?

Mais uma vez, muito obrigada por me ajudar :relaxed:

M

Errado!
A Anotação @PostConstruct serve para executar um método quando o bean for criado
Se o seu bean é ViewScoped, ele será criado toda vez que você acessar uma nova página que referencia esse bean e será destruído toda vez que você fizer um outcome(navegação) para uma outra página ou até para a mesma mas executando um redirect.

Anota o método com @PostConstruct e coloca o método de prepararPesquisa dentro do método anotado, assim quando o bean for criado, a sua lista vai ser populada, pois dentro do método prepararPesquisa você popula a sua lista.
Igualzinho como eu postei

F

Olá Mike,

Mas esta anotação @PostConstruct está justamente no método prepararPesquisa(). Você quer que eu chame o método prepararPesquisa() onde?

F

Pessoal, consegui resolver.

Continuei pesquisando e no arquivo xhtml, na tag <p:dataTable emptyMessage=“Nenhum registro encontrado.” value="#{MBFornecedores.itens}" var=“item” ajax=“false”> eu coloquei:

ajax=“false”

e FUNCIONOU!!!

Meninos, a todos que me ajudaram, muito obrigada!!! Estou aprendendo ainda, com certeza mais adiante precisarei de mais ajuda de vocês…

Poderei dar continuidade aos meus estudos.

Boa tarde a todos!!!

M

Na sua print não esta

F

Verdade, no print não estava, mas acrescentei. Mas graças a Deus está funcionando. Muito obrigada a cada um que gastou seu tempo para me ajudar.

:kissing_closed_eyes:

M
Solucao aceita

Foi o @PostConstruct que fez funcionar, a datatable não possui o atributo ajax
:+1:

Criado 23 de janeiro de 2019
Ultima resposta 31 de jan. de 2019
Respostas 29
Participantes 5