Fórum Adicionar itens a uma lista já existente #14611
26/01/2010
0
Estou com dificuldade em entender como fazer o seguinte:
Tenho uma pagina que tem um select populado dinamicamente com informações do BD.
Tenho um botão que deve atualizar a pagina a adicionar o item selecionado em uma lista
Esta quase funcionando ... o problema é q quando adiciono um item ele subistitui o anterior, ou seja, nunca retorna mais de um item ...
esse é o jsp
<form method="POST" action="" name="f" id="f">
Produtos <select id="produto" name="produto">
<c:forEach var="i" items="$">
<option value="${i.prod_id}">${i.nome}</option>
</c:forEach><input type="button" value="Adicionar" onclick="add();"><br>
</select>
<table width="800px" border="2">
<tr>
<td>Cod Produto</td>
<td>Nome Produto</td>
<td>Quantidade</td>
<td>Valor unitário</td>
</tr>
<c:forEach var="inv" items="$">
<tr>
<td>${inv.prod_id}</td>
<td>${inv.nome}</td>
<td><input type="text" value="1" size="2"></td>
<td>${inv.valor}</td>
</tr>
</c:forEach>
</table>
</form>
Aqui o controle
int cod = Integer.parseInt(request.getParameter("produto"));
ProdutoDao pd = new ProdutoDao();
List listaProduto = new ArrayList(); //para re-popular o select
try{
listaProduto = pd.listaGeralProdutos();
request.setAttribute("listaProduto",listaProduto);
List listaProdutoCod = pd.listaGeralProdutosCod(cod);
request.setAttribute("listaProdutoCod",listaProdutoCod);
request.getRequestDispatcher("nova_fatura.jsp").forward(request,response);
}catch(Exception ex){
System.out.println("Erro: "+ex.getMessage());
}
Como posso fazer isso dar certo??
Cleiton Tavares.
Curtir tópico
+ 0Posts
26/01/2010
Dyego Carmo
soloque esta linha no seu controle:
System.out.println("Veja aqui "+ pd.listaGeralProdutos().size());
E roda a aplicação... e me manda o resultado que é impresso no console...
valeu !
Gostei + 0
26/01/2010
Cleiton Tavares.
o resultado é esse:
- Veja aqui 3
Gostei + 0
26/01/2010
Dyego Carmo
Gostei + 0
26/01/2010
Cleiton Tavares.
Seria pra aparecer aqui a lista:
<table width="800px" border="2">
<tr>
<td>Cod Produto</td>
<td>Nome Produto</td>
<td>Quantidade</td>
<td>Valor unitário</td>
</tr>
<c:forEach var="inv" items="$">
<tr>
<td>${inv.prod_id}</td>
<td>${inv.nome}</td>
<td><input type="text" value="1" size="2"></td>
<td>${inv.valor}</td>
</tr>
</c:forEach>
</table>
Gostei + 0
26/01/2010
Dyego Carmo
E quero tmb o codigo fonte do JSP inteiro... cole em dois POSTS separados...
Gostei + 0
26/01/2010
Cleiton Tavares.
Pra facilitar e como este projeto é somente para estudo, posso te mandar o projeto?
é bem simplório, somente pra aprender mesmo.
Abraço!
Gostei + 0
26/01/2010
Dyego Carmo
OK ?
Estou no aguardo !
Gostei + 0
26/01/2010
Cleiton Tavares.
Segue o link:
http://video.devmedia.com.br/discovirtual/216335/invoice_teste.rar
Abraço
Gostei + 0
27/01/2010
Dyego Carmo
Gostei + 0
27/01/2010
Cleiton Tavares.
Segue abaixo o script do MySql
CREATE TABLE `faturas` (
`fat_id` int(11) NOT NULL AUTO_INCREMENT,
`prod_id` int(11) DEFAULT NULL,
`qtd` int(11) DEFAULT NULL,
`total` double DEFAULT NULL,
PRIMARY KEY (`fat_id`),
KEY `prod_id` (`prod_id`),
CONSTRAINT `faturas_ibfk_1` FOREIGN KEY (`prod_id`) REFERENCES `produtos` (`prod_id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
CREATE TABLE `produtos` (
`prod_id` int(11) NOT NULL AUTO_INCREMENT,
`nome` varchar(255) DEFAULT NULL,
`valor` double DEFAULT NULL,
PRIMARY KEY (`prod_id`)
) ENGINE=InnoDB AUTO_INCREMENT=30 DEFAULT CHARSET=latin1;
Gostei + 0
27/01/2010
Dyego Carmo
http://video.devmedia.com.br/discovirtual/202707/invoice_teste.zip
Gostei + 0
27/01/2010
Cleiton Tavares.
Funcionou blz aqui...mas fiquei com algumas duvidas...Mais precisamente nesta parte:
List lista = (List) request.getSession().getAttribute("listaItens");
if (lista == null) {
lista = new LinkedList();
request.getSession().setAttribute("listaItens", lista);
}
lista.addAll(listaItens);
De onde esta vindo esse atributo listaItens na 1ª linha?? do proprio Servlet??
Obrigado pela atenção!
Gostei + 0
27/01/2010
Dyego Carmo
Se nao existir (retornar null) eu crio uma lista e adiciono lá...
senao eu apenas continuo...
Ae eu pego e adiciono o item dentro dessa lista :)
OK ?
Gostei + 0
27/01/2010
Cleiton Tavares.
Agora saquei ... valeu ai cara ...
Agora vou quebrar a cabeça pra colocar ajax nisso : )
Obrigado!!!
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)