Como sal

1 resposta
V

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")));
        }

1 Resposta

wbdsjunior

use a tag code.

acho que está faltando o atributo value das options do select

out.write("&lt;option value=\" + prod.getId() + \"&gt;" + prod.getNome() + "&lt;/option&gt;");

e

out.write("&lt;option value=\" + form.getCnpj() + \"&gt;" + form.getNome_Fant() + "&lt;/option&gt;");
Criado 28 de junho de 2011
Ultima resposta 28 de jun. de 2011
Respostas 1
Participantes 2