Pessoal estou criando um projeto que possui nas páginas DataTable com as informações para facilitar a visualização e gostaria de usar o sortBy e o filterBy porém já coloquei o parâmetro nas colunas mas não aparece. Se alguém puder ajudar fico muito agradecido.
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 br.com.farmacia.DAO.FornecedoresDAO;
import br.com.farmacia.domain.Fornecedores;
import br.com.farmacia.util.JSFUtil;
@ManagedBean(name = "MBFornecedores")
@ViewScoped
public class FornecedoresBean {
private Fornecedores fornecedores;
private ArrayList<Fornecedores> itens;
private ArrayList<Fornecedores> itensFiltrados;
public Fornecedores getFornecedores() {
return fornecedores;
}
public void setFornecedores(Fornecedores fornecedores) {
this.fornecedores = fornecedores;
}
public ArrayList<Fornecedores> getItens() {
return itens;
}
public void setItens(ArrayList<Fornecedores> itens) {
this.itens = itens;
}
public ArrayList<Fornecedores> getItensFiltrados() {
return itensFiltrados;
}
public void setItensFiltrados(ArrayList<Fornecedores> itensFiltrados) {
this.itensFiltrados = itensFiltrados;
}
@PostConstruct
public void prepararPesquisa() {
try {
FornecedoresDAO fDAO = new FornecedoresDAO();
itens = fDAO.listar();
} catch (SQLException e) {
e.printStackTrace();
}
}
public void prepararNovo() {
fornecedores = new Fornecedores();
}
public void novo() {
try {
FornecedoresDAO fDAO = new FornecedoresDAO();
fDAO.salvar(fornecedores);
itens = fDAO.listar();
JSFUtil.adicionarMensagemSucesso("Fornecedor salvo com sucesso.");
} catch (SQLException e) {
JSFUtil.adicionarMensagemErro("e.getMessage()");
e.printStackTrace();
}
}
public void excluir() {
try {
FornecedoresDAO fDAO = new FornecedoresDAO();
fDAO.excluir(fornecedores);
itens = fDAO.listar();
JSFUtil.adicionarMensagemSucesso("Fornecedor excluido com sucesso.");
} catch (SQLException e) {
JSFUtil.adicionarMensagemErro("Não é possível excluir um fornecedor com produtos associados.");
e.printStackTrace();
}
}
public void editar() {
try {
FornecedoresDAO fDAO = new FornecedoresDAO();
fDAO.editar(fornecedores);
itens = fDAO.listar();
JSFUtil.adicionarMensagemSucesso("Fornecedor editado com sucesso.");
} catch (SQLException e) {
JSFUtil.adicionarMensagemErro("e.getMessage()");
e.printStackTrace();
}
}
}
FornecedoresDAO
package br.com.farmacia.DAO;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.ArrayList;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
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 codigo = ? ");
Connection conexao = ConexaoFactory.conectar();
PreparedStatement comando = conexao.prepareStatement(sql.toString());
comando.setLong(1, f.getCodigo());
comando.executeUpdate();
}
public void editar(Fornecedores f) throws SQLException {
StringBuilder sql = new StringBuilder();
sql.append("UPDATE fornecedores ");
sql.append("SET descricao = ? ");
sql.append("WHERE codigo = ? ");
Connection conexao = ConexaoFactory.conectar();
PreparedStatement comando = conexao.prepareStatement(sql.toString());
comando.setString(1, f.getDescricao());
comando.setLong(2, f.getCodigo());
comando.executeUpdate();
}
public Fornecedores buscaPorCodigo(Fornecedores f) throws SQLException {
StringBuilder sql = new StringBuilder();
sql.append("SELECT codigo, descricao ");
sql.append("FROM fornecedores ");
sql.append("WHERE codigo = ? ");
Connection conexao = ConexaoFactory.conectar();
PreparedStatement comando = conexao.prepareStatement(sql.toString());
comando.setLong(1, f.getCodigo());
ResultSet resultado = comando.executeQuery();
Fornecedores retorno = null;
if (resultado.next()) {
retorno = new Fornecedores();
retorno.setCodigo(resultado.getLong("codigo"));
retorno.setDescricao(resultado.getString("descricao"));
}
return retorno;
}
public ArrayList<Fornecedores> buscarPorDescricao(Fornecedores f) throws SQLException {
StringBuilder sql = new StringBuilder();
sql.append("SELECT codigo, descricao ");
sql.append("FROM fornecedores ");
sql.append("WHERE descricao LIKE ? ");
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.setCodigo(resultado.getLong("codigo"));
item.setDescricao(resultado.getString("descricao"));
lista.add(item);
}
return lista;
}
public ArrayList<Fornecedores> listar() throws SQLException {
StringBuilder sql = new StringBuilder();
sql.append("SELECT codigo, descricao ");
sql.append("FROM fornecedores ");
sql.append("ORDER BY descricao ASC ");
Connection conexao = ConexaoFactory.conectar();
PreparedStatement comando = conexao.prepareStatement(sql.toString());
ResultSet resultado = comando.executeQuery();
ArrayList<Fornecedores> lista = new ArrayList<Fornecedores>();
while (resultado.next()) {
Fornecedores f = new Fornecedores();
f.setCodigo(resultado.getLong("codigo"));
f.setDescricao(resultado.getString("descricao"));
lista.add(f);
}
return lista;
}
/*
* public static void main(String[] args) {
*
* Fornecedores f1 = new Fornecedores();
* f1.setDescricao("MICROOFFICE INFORMÁTICA"); Fornecedores f2 = new
* Fornecedores(); f2.setDescricao("NAGEM");
*
* FornecedoresDAO fDAO = new FornecedoresDAO();
*
* try { fDAO.salvar(f1);
*
* fDAO.salvar(f2); System.out.println("Salvo com sucesso!"); } catch
* (SQLException e) { System.out.println("Erro ao salvar!");
* e.printStackTrace(); }
*
* /* Fornecedores f1 = new Fornecedores(); f1.setCodigo((long) 1);
*
* FornecedoresDAO fDAO = new FornecedoresDAO(); try { fDAO.excluir(f1);
* System.out.println("Deletado com sucesso!"); } catch (SQLException e) {
* System.out.println("Erro ao deletar!"); e.printStackTrace(); }
*
*
* /* Fornecedores f1 = new Fornecedores();
*
* f1.setCodigo((long) 1); f1.setDescricao("HUGO VASCONCELOS");
*
* FornecedoresDAO fDAO = new FornecedoresDAO(); try { fDAO.editar(f1);
* System.out.println("Editado com sucesso!"); } catch (SQLException e) {
* System.out.println("Erro ao editar!"); e.printStackTrace(); }
*/
/*
* Fornecedores f1 = new Fornecedores(); f1.setCodigo((long) 1);
*
* Fornecedores f2 = new Fornecedores(); f2.setCodigo((long) 3);
*
* 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 e) {
* System.out.println("Erro ao buscar!"); e.printStackTrace(); }
*/
/*
* FornecedoresDAO fDAO = new FornecedoresDAO();
*
* try {
*
* ArrayList<Fornecedores> lista = fDAO.listar();
*
* for (Fornecedores f : lista) { System.out.println("Resultado " + f); }
*
* } catch (SQLException e) { System.out.println("Erro ao buscar!");
* e.printStackTrace(); }
*
*/
/*
* Fornecedores f1 = new Fornecedores(); f1.setDescricao("de");
*
* FornecedoresDAO fDAO = new FornecedoresDAO();
*
* try {
*
* ArrayList<Fornecedores> lista = fDAO.buscarPorDescricao(f1);
*
* for (Fornecedores f : lista) { System.out.println("Resultado " + f); }
*
* } catch (Exception e) { System.out.println("Erro ao buscar");
* e.printStackTrace(); }
*/
}
Fornecedores
package br.com.farmacia.domain;
public class Fornecedores {
private Long codigo;
private String descricao;
public Long getCodigo() {
return codigo;
}
public void setCodigo(Long codigo) {
this.codigo = codigo;
}
public String getDescricao() {
return descricao;
}
public void setDescricao(String descricao) {
this.descricao = descricao;
}
@Override
public String toString() {
String saida = codigo + " - " + descricao;
return saida;
}
}
`
fornecedores.xhtml
`<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:p="http://primefaces.org/ui"
template="/templates/modeloSistema.xhtml"
>
<ui:define name="menu">
<ui:include src="/includes/menu.xhtml" />
</ui:define>
<ui:define name="conteudo">
<h:form id="frmfornecedores">
<p:dataTable id="tbfornecedores"
widgetVar="tabelaFornecedores"
emptyMessage="Nenhum registro encontrado!"
value="#{MBFornecedores.itens}"
var="item"
filteredValue="#{MBFornecedores.itensFiltrados}" paginator="true"
rows="7"
>
<f:facet name="header">Lista de Fornecedores</f:facet>
<p:column headerText="Código" sortBy="#{item.codigo}" filterBy="#{item.codigo}">
<h:outputText value="#{item.codigo}" />
</p:column>
<p:column sortBy="#{item.descricao}" filterBy="#{item.descricao}" headerText="Descrição" >
<h:outputText value="#{item.descricao}" />
</p:column>
<p:column headerText="Opções">
<p:commandButton icon="ui-icon-trash"
oncomplete="PF('dlgforExcluir').show();" update=":frmforExcluir:pnforExcluir" >
<f:setPropertyActionListener value="#{item}" target="#{MBFornecedores.fornecedores}"></f:setPropertyActionListener>
</p:commandButton>
<p:commandButton icon="ui-icon-pencil"
oncomplete="PF('dlgforEditar').show();" update=":frmforEditar:pnforEditar" >
<f:setPropertyActionListener value="#{item}" target="#{MBFornecedores.fornecedores}"></f:setPropertyActionListener>
</p:commandButton>
</p:column>
<f:facet name="footer">
<p:commandButton value="Novo" actionListener="#{MBFornecedores.prepararNovo}"
oncomplete="PF('dlgforNovo').show();" update=":frmforNovo:pnforNovo" /></f:facet>
</p:dataTable>
</h:form>
<p:dialog widgetVar="dlgforNovo" closable="false" draggable="false" resizable="false"
header="Cadastar Fornecedor"
modal="true"
appendTo="@(body)"
>
<h:form id="frmforNovo">
<h:panelGrid id="pnforNovo" columns="2">
<p:outputLabel value="Descrição:" for="txtDescNovo" />
<h:inputText size="30" maxlength="50" id="txtDescNovo"
value="#{MBFornecedores.fornecedores.descricao}" required="true"
requiredMessage="O campo descrição é obrigatório." />
</h:panelGrid>
<h:panelGrid columns="2">
<p:commandButton value="Gravar" actionListener="#{MBFornecedores.novo}"
oncomplete="verificar(xhr, status, args, 'dlgforNovo', 'tbfornecedores');"
update=":frmfornecedores:tbfornecedores :msgGlobal"/>
<p:commandButton value="Cancelar"
process="@this"
onclick="PF('dlgforNovo').hide();" />
</h:panelGrid>
</h:form>
</p:dialog>
<p:dialog widgetVar="dlgforExcluir" closable="false" draggable="false" resizable="false"
header="Excluir Fornecedor"
modal="true"
appendTo="@(body)">
<h:form id="frmforExcluir">
<h:panelGrid id="pnforExcluir" columns="2">
<h:outputText value="Código" />
<h:outputText value="#{MBFornecedores.fornecedores.codigo}" />
<h:outputText value="Descrição" />
<h:outputText value="#{MBFornecedores.fornecedores.descricao}" />
</h:panelGrid>
<h:panelGrid columns="2">
<p:commandButton value="Excluir" actionListener="#{MBFornecedores.excluir}"
oncomplete="PF('dlgforExcluir').hide(); PF('tabelaFornecedores').clearFilters(); "
update=":frmfornecedores:tbfornecedores :msgGlobal"/>
<p:commandButton value="Cancelar" onclick="PF('dlgforExcluir').hide();" />
</h:panelGrid>
</h:form>
</p:dialog>
<p:dialog widgetVar="dlgforEditar" closable="false" draggable="false" resizable="false"
header="Editar Fornecedor"
modal="true"
appendTo="@(body)">
<h:form id="frmforEditar">
<h:panelGrid id="pnforEditar" columns="2">
<h:outputText value="Código" />
<h:outputText value="#{MBFornecedores.fornecedores.codigo}" />
<h:outputText value="Descrição" for="txtEdtfor" />
<h:inputText value="#{MBFornecedores.fornecedores.descricao}"
id="txtEdtfor"
required="true"
requiredMessage="O campo descrição é obrigatório." />
</h:panelGrid>
<h:panelGrid columns="2">
<p:commandButton value="Editar" actionListener="#{MBFornecedores.editar}"
oncomplete="verificar(xhr, status, args, 'dlgforEditar', 'tbfornecedores'); "
update=":frmfornecedores:tbfornecedores :msgGlobal"/>
<p:commandButton value="Cancelar"
process="@this"
onclick="PF('dlgforEditar').hide();" />
</h:panelGrid>
</h:form>
</p:dialog>
</ui:define>
</ui:composition>`