JSF, LinkedList e forEach Jstl

7 respostas
s3v3r1n0

[b]Pessoal to com uma dúvida, eu tenho um bean com uma propriedade List, como faço para acessálo através de da Jstl?? Eu tentei normalmente deste modo:
[code]



Mas nada aparece, o que fazer??

7 Respostas

CintiaDR
  1. Veja se vc incluiu no cabeçalho
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>

Nota: NÃO ADIANTA se for o http://java.sun.com/jstl/core, ok?

  1. Se não for JSP 1.2 e JSTL 1.1, provavelmente não funciona.

  2. As coisas em JSP(como o c) são acessadas por “$”, e não “#”

<c:forEach items="${cadastro.usuarios}" var="user">

Pro “h” e “f”, são com “#”

Manjou?

  1. Se nada disso funcionar, use as tags de repetição do JSTL, como o dataTable e o dataList. Tive esperiências peculiares misturando “c” com “f”, então acontece de não funcionar da maneira esperada. Depois de JSP, nem sempre dá pra usar o JSTL, então tente também:
<c:forEach items="${cadastro.usuarios}" var="user">   
   <c:out value="${user.nome}"/>
 </c:forEach>
s3v3r1n0

OK entendi. Já funcionou! brigado Cintia.

CintiaDR

É, essa ligação do JSP com o JSTL é no mínimo peculiar 8)

rponte

Na verdade com JSF 1.2 e JSP 2.1 a EL tornou-se unificada, ou seja, tanto faz utilizar # ou $.

Um coisa que se deve ter em mente é que JSTL é executado como build-time, ou seja, na construção da árvore de componentes. JSTL não é ideal para cuidar da renderização, para isso existem os componentes visuais do JSF e algumas tags do Facelets, como a ui:repeat.

Abraços!

S

Moçada, estou com uma dúvida, espero que possam me ajudar:
Tenho abaixo um método que lista um objeto do tipo empresa, e gostaria de mostrar os valores em uma página jsp, de preferencia através de JSTL, vocês podem me ajudar?
public Empresa pesquisa(String nome) throws SQLException {

É este o DAO:

ResultSet rs = getResultSet(nome);

Empresa empresa = new Empresa();

if (rs.next()) {

empresa = new Empresa();

empresa.setCod_empresa(rs.getLong(“cod_empresa”));

empresa.setNome(rs.getString(“nome”));

empresa.setTelefone(rs.getString(“Telefone”));

empresa.setEmail(rs.getString(“Email”));

empresa.setRamodeatividade(rs.getString(“Ramodeatividade”));

empresa.setSite(rs.getString(“Site”));

empresa.setEndereco(rs.getString(“Endereco”));

empresa.setDescricao(rs.getString(“descricao”));

}

rs.close();
return empresa;
}
/**
 * Consulta um objeto Empresa com o parametro nome da Empresa
 *  usando like para banco de dados
 * @param nome
 * @return
 * @throws SQLException
 */
public List<Empresa> pesquisaEmpresas(String nome) throws SQLException {
	
	List<Empresa> empresas = new ArrayList<Empresa>();

	ResultSet rs = getResultSet(nome);
	while (rs.next()) {
		empresas.add(pesquisa(nome));
	}
	
	return empresas;
}

public ResultSet getResultSet(String nome) throws SQLException{

	String sql = "select * from empresa where nome like '"
		+ nome + "%'";

	PreparedStatement stmt = this.connection.prepareStatement(sql);
	
	ResultSet rs = stmt.executeQuery();
	
	return rs;

Esta é a Servlet:

package br.com.lza.mvc;

import java.sql.SQLException;

import java.util.ArrayList;

import java.util.List;
import javax.servlet.RequestDispatcher;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import br.com.lza.jdbc.dao.EmpresaDAO;
import br.com.lza.jdbc.modelo.Empresa;

public class PesquisaEmpresaLogic implements BusinessLogic {

@Override
public void execute(HttpServletRequest request, HttpServletResponse response)
		throws Exception {
	System.out.println("Executando a lógica e redirecionando...");

	List<Empresa> empresas = new ArrayList<Empresa>();
	String nome = (request.getParameter("nome"));
	
request.setAttribute("nome", nome);

	EmpresaDAO empresadao;
	try {
		empresadao = new EmpresaDAO();
		empresas = empresadao.pesquisaEmpresas(nome);
		request.setAttribute("empresa", empresas);
		RequestDispatcher rd = request
				.getRequestDispatcher("visao/resultpesq.jsp");
		rd.forward(request, response);
	} catch (SQLException e) {
	}
}

}

CintiaDR

smnj,

Dica: abra um novo tópico, use a tag ‘code’ para colocar os trechos de código e por favor, explique QUAL é o problema, o que está acontecendo de errado e etc.

S

a página é listada, mas, sem dados.

Criado 16 de maio de 2008
Ultima resposta 30 de jul. de 2011
Respostas 7
Participantes 4