Comando for não funciona na página jsp

5 respostas
J

Os dados inseridos não aparecem na tabela usando o comando for, alguém pode me ajudar?:pray::pray::pray::pray:

<%<a class="mention" href="/u/page">@page</a> import=“ruirossi.editora.beans.<em>, ruirossi.editora.negocio.</em>%>

<%<a class="mention" href="/u/page">@page</a> import=“java.util.<em>, java.text.</em>%>

<jsp:useBean id=“dados” class=“java.util.Vector” scope=“request” />
SiteEditora

E-commerce para Editoras

Meus Pedido

<%
PedidoBean pb = new PedidoBean();
ClienteBean cb = new ClienteBean();
PedidoBean pb1 = new PedidoBean();
ClienteBean cb1 = new ClienteBean();

pb.setNumero(1);
pb.setData(new Date());
pb.setHorario(new Date());
cb.setEmail("[email removido]");

pb.setNumero(2);
pb.setData(new Date());
pb.setHorario(new Date());
cb.setEmail("[email removido]");

NumberFormat nf = NumberFormat.getCurrencyInstance();
SimpleDateFormat df = new SimpleDateFormat("dd/MM/yyyy");
SimpleDateFormat hf = new SimpleDateFormat("HH:mm");

for(int i = 0; i < dados.size(); i++){
	pb = (PedidoBean)dados.get(i);
	

%>
<tr>
	<td align="center"><%= pb.getNumero() %></td>
	<td align="center"><%= df.format(pb.getData()) %></td>
	<td align="center"><%= hf.format(pb.getHorario()) %></td> 	
</tr>

<%}%>

Número Data Horário Itens Total Excluir

5 Respostas

darlan_machado

De onde está tirando esse dados?

J

Da classe PedidoBean.

darlan_machado

Então não entendi essa linha. Até onde lembro, a tag useBean indica que você está criando uma instância de objeto daquela classe… Como você só instanciou e não populou, é um vetor vazio. Sendo assim, o for não irá funcionar.

J

Boa tarde, Darlan!

<strong>No servlet</strong>

<strong>pedidos => vem alimentando os dados da tabela</strong>

req.setAttribute(“pedido”, pedidos);

return “/pedido_lista.jsp”;

ServletContext sc = getServletContext();

RequestDispatcher rd = sc.getRequestDispatcher(url);

rd.forward(req, resp);

Na página JSP (A tabela fica vazia, não consigo resgatar os dados da tabela na pagina jsp)
<jsp:useBean id=“pedidos” class=“java.util.Vector” scope=“request” />

<jsp:include page=“mod/cabecalho.jsp” />

Meus Pedido

<% NumberFormat nf = NumberFormat.getCurrencyInstance(); SimpleDateFormat df = new SimpleDateFormat("dd/MM/yyyy"); SimpleDateFormat hf = new SimpleDateFormat("HH:mm"); for(int i = 0; i < pedidos.size(); i++){ PedidoBean pb = (PedidoBean)pedidos.get(i); int id = pb.getNumero(); %>

<%}%>

Número Data Horário Itens Total Excluir
<%= pb.getNumero() %> <%= df.format(pb.getData()) %> <%= hf.format(pb.getHorario()) %>
darlan_machado

Como você está redirecionando a request e está inserindo os pedidos como atributo, você não pode usar o useBean, como eu disse, ele instancia um objeto da classe definida como parâmetro class.

O correto seria usar:

<%
    Vector pedidos = (Vector) request.getAttribute("pedidos");
%>

Caso contrário, não vai funcionar.

Criado 22 de setembro de 2019
Ultima resposta 27 de set. de 2019
Respostas 5
Participantes 2