Boa noite Senhores!!!
Me surgiu uma grande dúvida que para muitos daqui deve ser bem traquilo de se resolver.
O sistema é em java (WEB).
Em uma tela de estoque carrego 2 combos de Produto e Fornecedores cadastrados no BD. Na verdade isso é list de um objeto do bean produto e outro de fornecedor.
O que ocorre!?
É que quando tento salvar tanto o id_Produto como o CNPJ que são FK da tabela Estoque e são passados pela tela Estoque. Aconte que passo nome do produto (String) e o nome fantasia do fornecedor (String). Acontece que as ch no banco as chaves estão como Inteiros.
Gostaria que antes de salvar o objeto, pudesse passar aquela strind tanto do nome do produto como do cnpj do fornecedor para que não ocorra o erro. Como fazer isso???
Segue abaixo o trecho da tela de estoque no qual eu recebo o list de produtos e fornecedores.
<table width="97%" height="257" border="0" align="center" class="form">
<tr>
<td width="11%" height="34" align="right">NF:</td>
<td width="31%" align="left"><input type="text" name="nf" size="12"/></td>
<td align="right"> Produto:</td>
<td ><select name="id_Produto">
<%
session = request.getSession();
List produtoList = (List) session.getAttribute("produtoList");
if (produtoList != null) {
for (Iterator x = produtoList.iterator(); x.hasNext();) {
Produto prod = (Produto) x.next();
out.write("<option>" + prod.getNome()
+ "</option>");
}
} else {
}
%>
</select></td>
<td width="8%" align="right"> Fornecedor:</td>
<td width="25%" align="left">
<select name="cnpj">
<%
session = request.getSession();
List fornecedorList = (List) session.getAttribute("fornecedorList");
if (fornecedorList != null) {
for (Iterator x = fornecedorList.iterator(); x.hasNext();) {
Fornecedor form = (Fornecedor) x.next();
out.write("<option>" + form.getNome_Fant()
+ "</option>");
}
} else {
}
%>
</select></td>
</tr>
Servlet Estoque
//Atributos de EstoqueNovo
if (request.getParameter(“id_Produto”) != null) {
etqNovo.setId_Produto(Integer.parseInt(request.getParameter(“id_Produto”)));
}
if (request.getParameter("cnpj") != null) {
etqNovo.setCnpj(Double.parseDouble(request.getParameter("cnpj")));
}