Problemas com JSTL

5 respostas
G

Bom dia,

Estou com problemas em fazer uma lista de elementos mostrar no navegador. Segue o código abaixo:

<%
List lista = new ArrayList();
Pessoa p;
p = new Pessoa();
p.setNome("teste 01");
p.setIdade(1);
lista.add(p);

p = new Pessoa();
p.setNome("teste 02");
p.setIdade(2);
lista.add(p);

p = new Pessoa();
p.setNome("teste 03");
p.setIdade(3);
lista.add(p);

p = new Pessoa();
p.setNome("teste 04");
p.setIdade(4);
lista.add(p);
%>

<head><title></title></head>
<body>

<c:forEach var="p" items="${lista}">
	Nome: <c:out value="${p.nome}"></c:out><br>
	Idade: <c:out value="${p.idade}"></c:out><br><br>
</c:forEach>

Grato.

5 Respostas

_Renatu

hehehe
“Estou com problemas” nao ajuda muito a gente…

Qual tipo de problema voce está tendo?

O seu código é só este aí? Você importou a TLD da JSTL no seu JSP? O jar da JSTL está na pasta correta?

lgi2020

Supondo que você está com os arquivos .jar da JSTL no classpath da sua aplicação corretamente e que você está declarando o uso da JSTL corretamente na sua página…

esperimente colocar este código no seu scriptlet:

pageContext.setAttribute("lista", lista);

Se você não tiver a sua lista no escopo da página, ou do request ou de qualquer outro canto, não há como pegar com a JSTL.
Neste caso, estamos usando o escopo da página.

Espero ter ajudado.

Abraços.

G

o codigo completo segue abaixo

<%@page import="java.util.List"%>
<%@page import="java.util.ArrayList"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql"%>
<%@page import="wsr.teste.Pessoa"%>
<%@page import="wsr.teste.TesteFalsoDAO"%>
<html>

<%
List lista = new ArrayList();
Pessoa p;
p = new Pessoa();
p.setNome("teste 01");
p.setIdade(1);
lista.add(p);

p = new Pessoa();
p.setNome("teste 02");
p.setIdade(2);
lista.add(p);

p = new Pessoa();
p.setNome("teste 03");
p.setIdade(3);
lista.add(p);

p = new Pessoa();
p.setNome("teste 04");
p.setIdade(4);
lista.add(p);
%>

<head><title></title></head>
<body>

<c:forEach var="p" items="${lista}">
	Nome: <c:out value="${p.nome}"></c:out><br>
	Idade: <c:out value="${p.idade}"></c:out><br><br>
</c:forEach>

</body>
</html>

Bem… o problema e o seguinte, não esta aparecendo no navegador o que deviria aparecer.

Nome: teste 01
Idade: 1
Nome: teste 02
Idade: 2
Nome: teste 03
Idade: 3
Nome: teste 04
Idade: 4

Pelo o que eu vi em tutorias, no campo items eu tenho que colocar o nome da minha collection que é lista.
Para ser exibido um objeto, o mesmo deve ser um objeto no modelo JavaBeans (o modelo (simples) diz que deve conter um construtor sem parametros e gets e sets) pois o objeto pessoa esta neste formato segue o cógido abaixo.

package wsr.teste;

public class Pessoa {
	private String nome;
	private int idade;
	
	
	public Pessoa() {
	}
	
	public int getIdade() {
		return idade;
	}

	public String getNome() {
		return nome;
	}

	public void setIdade(int idade) {
		this.idade = idade;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}
	
}

Grato.

G

Grato pela ajuda lgi2020. Acabei enviando depois o meu post.

lgi2020

Estamos aí pra isso!

Abraços. :slight_smile:

Criado 26 de novembro de 2007
Ultima resposta 26 de nov. de 2007
Respostas 5
Participantes 3