Carregar e recuperar Vector na sessao do usuario?

Olá tudo bem?

Estou com a seguinte dúvida: Preciso carregar um vector na sessão do usuário e recupera-lo.

Motivo: Quando o usuário seleciona um produto em uma combo, estou carregando os valores do produto selecionado em caixas de texto.

Quando o usuário altera as informações das Caixas de texto e clica em inserir item, desejo carregar estas informações em um Vector. E assim que o Vector for carregado preciso carrega-lo na memória para que as informações não sejam perdidas. Resumindo tudo acontecerá da seguinte forma:

Inserir os itens de uma nota fiscal:
1 – usuário seleciona produto
2 – página é carregada com as informações do produto
3 – usuário altera ou não as informações como valor, quantidade, etc
4 – usuário clica em inserir item
5 – Tenho uma classe chamada produto, essa classe e instanciada e atribuída com os valores do produto.
6 – Carrego o objeto Produto no vector
7 – Carrego o vector na sessão do usuário
8 – A página e carregada novamente
9 – Recupero o vector da sessão do usuário
10 – Em seguida, devo listar os itens do vector na página
11 – O usuário poderá escolher outro produto e os passos devem ser repetir

Estou carregando o Vector da seguinte forma:

Vector vetor = new Vector();

Enumeration elementos ;

if (“incluirItem”.equals(request.getParameter(“lista”)))
{
try
{
Produto produtoSelecionado = new Produto();

produtoSelecionado.setDados(
request.getParameter(“codProd”),
request.getParameter(“nomeProduto”),
request.getParameter(“txtQuantidade”),
request.getParameter(“txtQtdMin”),
request.getParameter(“txtPrecoVenda”),
request.getParameter(“txtPrecoCusto”));

//ESTOU CARREGANDO O VECTOR na sessão do usuário da seguinte maneira

vetor.addElement(produtoSelecionado);
HttpSession sessaoAdm = request.getSession(true);
sessaoAdm.setAttribute(“matriz”, vetor);
}
catch(Exception e)
{ }
}
%>

Estou recuperando o VECTOR DA SEGUINTE FORMA:

Mas está dando um erro quando passo o vector da sessão para o novo vector chamado lista.

Por gentileza, explique-me o que devo fazer>

<%
try
{
HttpSession sessaoAdm = request.getSession(true);
Vector lista = (Vector)sessaoAdm.getAttribute(“matriz”);
}
catch(Exception e)
{ }

if (lista.size() >= 1)
{
elementos = lista.elements();
if (elementos != null)
{
while(elementos.hasMoreElements())
{
Produto prod = (Produto)elementos.nextElement();

%>
<td> <%=prod.getCodProd()%> </td>
<td> <%=prod.getProdNome()%> </td>
<%
}
}
}
%>


Qual é a mensagem de erro?

A mensagem de erro é a seguinte

type Exception report

message Internal Server Error

description The server encountered an internal error (Internal Server Error) that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException: Unable to compile class for JSPNote: sun.tools.javac.Main has been deprecated.

An error occurred between lines: 567 and 584 in the jsp file: /jsp/ContasPagar.jsp

Generated servlet error:
C:Tomcat 4.0worklocalhostccprjspContasPagar$jsp.java:846: Undefined variable: Vector
Vector itemProduto = (Vector).sessaoAdm.getAtribute(“matriz”);
^

An error occurred between lines: 567 and 584 in the jsp file: /jsp/ContasPagar.jsp

Generated servlet error:
C:Tomcat 4.0worklocalhostccprjspContasPagar$jsp.java:851: Undefined variable or class name: lista
if (lista.size() >= 1)
^

An error occurred between lines: 567 and 584 in the jsp file: /jsp/ContasPagar.jsp

Generated servlet error:
C:Tomcat 4.0worklocalhostccprjspContasPagar$jsp.java:853: Undefined variable or class name: lista
elementos = lista.elements();
^
3 errors, 1 warning

at org.apache.jasper.compiler.Compiler.compile(Compiler.java:285)
at org.apache.jasper.servlet.JspServlet.loadJSP(JspServlet.java:552)
at org.apache.jasper.servlet.JspServlet$JspServletWrapper.loadIfNecessary(JspServlet.java:177)
at org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.java:189)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:382)
  • java.util.* foi importado?

  • Vector itemProduto = (Vector).sessaoAdm.getAtribute(“matriz”);
    o ponto depois de ( Vector ) é um erro de sintaxe

  • você tem certeza que o atributo da sessão ( “matriz” ) pode sofrer um cast para Vector?

E aí Lipe, beleza?

Cara o java.util.* foi importado sim.

Vector itemProduto = (Vector).sessaoAdm.getAtribute(“matriz”);
o ponto depois de ( Vector ) é um erro de sintaxe

  • você tem certeza que o atributo da sessão ( “matriz” ) pode sofrer um cast para Vector?

BEM COM RELAÇÃO A ESTA PERGUNTA, NÃO SEI RESPONDER, POIS ESTÁ É MINHA DÚVIDA

Caramba eu não tinha percebido o ponto na hora do cast.

Vector itemProduto = (Vector).sessaoAdm.getAtribute(“matriz”);

Funcionou?

Bem, de qualquer maneira, você deveria saber de “matriz” é um vetor, pois foi você quem colocou lá hehe

Cara agora estou no trabalho. Só vou poder olhar o código quando chegar em casa. Depois volto pra falar se funcionou, valeu!