Galera estou desenvolvendo uma aplicacao web com jsp. Ja fiz a parte de cadastros, consulta, edição. Tudo funcionado.
Ai me deparei com com um problema: Implementar a entrada de estoque. Onde a mesma vai ter de de buscar o fornecedor e jogar pra página. buscar produtos e ir adicionando os produtos na lista, mantendo os que ja estavam adicionados na lista e também o forncedor ja selecionado para depois ser efetuado a entrada em estoque dos produtos.
Aqui é que mora meu problema, não consigo ir montando uma collection, list, Vector, ArrayList, vetor[], Array[][] ou seja lá o que for para manter a lista na página e ir recebendo os demais itens do formulario de consulta.
já estou a duas semanas pra montar um exemplo bobo em jsp para que possa continuar a desenvolver o sistema. Já li as apostilas da Caelum, que por sinal são boas, mas não tem algo abragendo o meu problema.
Então gostaria de contar se possível com a ajuda da galera mais experiente qué já passaram por isso e se pude ajudar fico grato.
Abaixo os codigo que to tentando desenvolver para dai continuar a desenvolver o meu sistema.
Ta gerando e mostrando a lista gerada pelo for de teste, mas se eu pedir pra gerar de novo ele vai criar uma nova lista e com os novos dados e é esse o meu problema, não to sabendo adicionar os dados na mesma lista. Se alguém se dispor a dar uma olhada no código e tentar me ajudar a resolver este problema fico muito grato.
Classe Teste:
[code]package font;
public class Teste {
private String nome;
private String end;
private String data;
public String getData() {
return data;
}
public void setData(String data) {
this.data = data;
}
public String getEnd() {
return end;
}
public void setEnd(String end) {
this.end = end;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
}[/code]
Classe Colecao: Coleção da classe teste…
[code]package font;
import java.util.ArrayList;
import java.util.List;
public class Colecao{
private List<Teste> itemCol;
public Colecao() {
itemCol = new ArrayList<Teste>();
}
public List<Teste> getItemCol() {
return itemCol;
}
public void setItemCol(List<Teste> itemCol) {
this.itemCol = itemCol;
}
public void addItemTeste(Teste itemColecao) {
try {
this.itemCol.add(itemColecao);
}
catch (Exception e) {
throw new RuntimeException(e);
}
}
}[/code]
página index.jsp com meu form de adicionar item na lista
<%@page contentType="text/html; charset=iso-8859-1" pageEncoding="iso-8859-1" import="font.*, java.util.*"%>
<html>
<head>
<title>Teste de sessão</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<%
if (request.getParameter("processa")!=null){
Teste t = new Teste();
Colecao colec = new Colecao();
//------add 10 vezes os dados do formulario. Na verdade o que quero
//é que vá adicionado um a um e liste todos da sessao
for (int i=0;i<10; i++){
t.setNome(request.getParameter("nome"));
t.setEnd(request.getParameter("endereco"));
t.setData(request.getParameter("nasc"));
//--------adiciona na colecao
colec.addItemTeste(t);
}
//----coloca a colec na sessao cl
session.setAttribute("cl",colec);
///------redireciona a pagina pra mostra a lista criada
response.sendRedirect("mostra.jsp");
}
%>
<!-- Abaixo so meu form que chama esta pagina mesmo passando o parametro processa=ok -->
<form name="ListaSessao" method="post" action="index.jsp?processa=ok">
<table width="180" border="0" align="center" cellpadding="0" cellspacing="1">
<tr>
<td width="55">Nome:</td>
<td width="122">
<input type="text" name="nome" id="nome"></td>
</tr>
<tr>
<td height="18">Endereço:</td>
<td>
<input type="text" name="endereco" id="endereco"></td>
</tr>
<tr>
<td>Nasc
<div align="left"></div></td>
<td>
<input type="text" name="nasc" id="nasc"></td>
</tr>
<tr>
<td colspan="2"><input type="submit" name="submit" value="Enviar"></td>
</tr>
</table>
</form>
<a >Ver resultado</a>
</body>
</html>
Página mostra.jsp que mostra o resultado da coleção/lista
[code]<%@page contentType=“text/html; charset=iso-8859-1” pageEncoding=“iso-8859-1” import=“font., java.util.”%>
<html>
<head>
<title>Teste de sessão</title>
<meta http-equiv=“Content-Type” content=“text/html; charset=iso-8859-1”>
</head>
<body>
<%
//----pega dados da sessao
Colecao colec = (Colecao)session.getAttribute("cl");
List<Teste> listaTeste = colec.getItemCol();
//-------Lista os dados da minha coleção. Ta listando ok.
for (Teste obj : listaTeste) {
out.println("Nome: "+obj.getNome());
out.println("Endereço: "+obj.getEnd());
out.println("Nascimento: "+obj.getData());
out.println("<br>");
}
%>
</body>
</html>[/code]