Ola boa tarde pessoal, estou aqui a pedir ajuda, estou fazendo um trabalho de conclusao de curso, seria um sistema para farmacias online com java.
Ja fiz a parte de cadastros, cliente,produto,funcionario,fornecedores e agora tenho que fazer a parte de entrada de produtos.
Estou com umas duvidas, mas como diz jack vamos por partes.
Na entrada de produtos quero colocar dois componetes selectOneMenu um para selecionar o fornecedor e outro para selecionar o produtos
Estou tentando implementar meu EntradaBean da seguinte maneira.
package managedbeans;
import dao.DAOEntrada;
import dto.DTOEntrada;
import dto.DTOFornecedor;
import dto.DTOProduto;
import java.util.ArrayList;
import java.util.List;
import javax.faces.model.SelectItem;
public class EntradaBean {
private DTOEntrada entrada;
private DAOEntrada entradas;
private DTOFornecedor fornecedor;
private List<DTOFornecedor> listaFornecedores;
private ArrayList<SelectItem> comboFornecedores;
private String fornecedorSelecionado;
private List<DTOProduto> listaProdutos;
private boolean erro;
public EntradaBean() {
entrada = new DTOEntrada();
entradas = new DAOEntrada();
}
public ArrayList<SelectItem> getComboFornecedores() {
return comboFornecedores;
}
/**
* @param comboFornecedores the comboFornecedores to set
*/
public void setComboFornecedores(ArrayList<SelectItem> comboFornecedores) {
this.comboFornecedores = comboFornecedores;
}
/**
* @return the fornecedorSelecionado
*/
public String getFornecedorSelecionado() {
return fornecedorSelecionado;
}
/**
* @param fornecedorSelecionado the fornecedorSelecionado to set
*/
public void setFornecedorSelecionado(String fornecedorSelecionado) {
this.fornecedorSelecionado = fornecedorSelecionado;
}
public List<SelectItem> getComboFornecedor() {
if (comboFornecedores == null) {
fornecedor = new DTOFornecedor();
comboFornecedores = new ArrayList<SelectItem>();
comboFornecedores.add(new SelectItem(fornecedor.getRazaoSocial()));
}
return comboFornecedores;
}
public String insercaoEntrada() {
entrada = new DTOEntrada();
return "entradaProduto";
}
}
Meu DAOEntrada
package dao;
import dto.DTOEntrada;
import java.sql.Connection;
import conexao.Conexao;
import dto.DTOFornecedor;
import dto.DTOProduto;
import java.sql.CallableStatement;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import javax.faces.model.SelectItem;
public class DAOEntrada {
private Connection con;
public DAOEntrada() {
con = Conexao.getInstancia().criarConexao();
}
public ArrayList<DTOFornecedor> getComboFornecedores() {
ArrayList<DTOFornecedor> fornecedores = new ArrayList<DTOFornecedor>();
String sql = " SELECT `pessoa`.*, `pessoa_juridica`.*,`fornecedor`.*" +
" from `pessoa`,`pessoa_juridica`,`fornecedor` " +
" where `pessoa`.`idPessoa` = `pessoa_juridica`.`Pessoa_idPessoa` " +
" and `pessoa_juridica`.`Pessoa_idPessoa` = `fornecedor`.`Pessoa_Juridica_Pessoa_idPessoa` " +
" order by pessoa_juridica.razaoSocial asc ";
try {
PreparedStatement smtp = con.prepareStatement(sql);
ResultSet rs = smtp.executeQuery();
while (rs.next()) {
ArrayList comboForneced = new ArrayList();
DTOFornecedor f = new DTOFornecedor();
comboForneced.add(new SelectItem(String.valueOf(rs.getInt("idFornecedor")),
rs.getString("razaoSocial")));
f.setId(rs.getInt("idFornecedor"));
f.setRazaoSocial(rs.getString("razaoSocial"));
fornecedores.add(f);
}
} catch (SQLException sqle) {
sqle.printStackTrace();
}
return fornecedores;
}
}
Meu jsp.
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@page import="java.util.*, dto.*" %>
<%@taglib prefix="f" uri="http://java.sun.com/jsf/core"%>
<%@taglib prefix="h" uri="http://java.sun.com/jsf/html" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Entrada de Produtos</title>
</head>
<body>
<jsp:include page="cabecalho.jsp" flush="true"/>
<br><br>
<f:view>
<f:loadBundle basename="managedbeans.labels" var="label" />
<div align="center">
<h:form>
<h:panelGrid columns="3">
<h:selectOneMenu id="funcao" required="true" value="#{EntradaBean.entrada.idFornecedor}" >
<f:selectItems value="#{EntradaBean.comboFornecedor}"/>
</h:selectOneMenu>
</h:panelGrid>
</h:form>
<h:outputText rendered="#{ProdutoBean.erro}" value="#{label.cadastro}" />
</div>
</f:view>
</body>
</html>
Erro
Exception Details: java.lang.NullPointerException
null
Possible Source of Error:
Class Name: com.sun.faces.renderkit.html_basic.MenuRenderer
File Name: MenuRenderer.java
Method Name: renderOption
Line Number: 580
Oque posso fazer para resolver isto, oque estou fazendo de errado ?
Muito obrigado