Alguém sabe me dizer como posso fazer a mesma coisa que o código abaixo faz de uma maneira mais eficiente?
<%@pagelanguage="java"contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><%@tagliburi="http://java.sun.com/jstl/core"prefix="c"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><%@pageimport="java.util.List"%><%@pageimport="modelo.Produto"%><%List<Produto>produtos=(List<Produto>)request.getAttribute("listaprod");%><html><head><metahttp-equiv="Content-Type"content="text/html; charset=UTF-8"><title>Insert title here</title></head><body><table><tr><td>Produto</td><td>Quantidade</td></tr><tr><%for(Produtop:produtos){%><td><%=p.getNome()%></td><td><%=p.getQuant()%></td></tr><%}%></table></body></html>
<%@pagelanguage="java"contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><%@tagliburi="http://java.sun.com/jstl/core"prefix="c"%><!DOCTYPEhtmlPUBLIC"-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"><html><head><metahttp-equiv="Content-Type"content="text/html; charset=UTF-8"><title>Inserttitlehere</title></head><body><table><tr><td>Produto</td><td>Quantidade</td></tr><c:forEachvar="produto"items="${produtos}"><tr><td>${produto.nome}</td><td>${produto.quant}</td></tr></c:forEach></table></body></html>
R
ressacaafu
Infelizmente não funcionou. Não entendi como o forEach pega a lista que vem do request.
F
fernando.camargo
Qual o erro que aconteceu?
Para passar a lista, usei ‘items’ da tag de JSTL.
Então usei Expression Language (procure estudar sobre isso) para pegar o que vem epla requisição. Como eu só coloquei o nome, automaticamente ele procura na sessão, requisição, aplicação… até encontrar a variável com aquele nome. Então eu simplesmente mando pegar as propriedades do bean em ${produto.nome}, por exemplo. Para isso funcionar, deve haver um getNome().
R
ressacaafu
Obrigado pela atenção Fernando. No servlet tenho o codigo:
O erro está no ‘items’ e nas EL de produto. Troca items=“listaprod” por items="${listaprod}", ${produto.getNome} por ${produto.nome} e ${produto.getQuant} por ${produto.quant}.
Você só precisa colocar o nome da variável, que o EL detecta o gettter.
Qualquer coisa, pode postar novamente.
R
ressacaafu
Devo estar errando em algum detalhe, sai o seguinte erro: HTTP Status 500,
org.apache.jasper.JasperException: /produtos.jsp(19,7) According to TLD or attribute directive in tag file, attribute items does not accept any expressions
Bom… que eu saiba, geralmente eh uma jstl-1.2.jar e uma standard.jar.
Ai parece estar faltando a standard.jar.
R
ressacaafu
No NetBeans tá funcionando \o/.
F
fernando.camargo
auwehwauehwaeuwa
O NetBeans importa automaticamente as bibliotecas.
Copia jstl.jar e standard.jar que tem no seu netbeans pro Eclipse, q funciona também.