Estou voltando aos estudos de Java para Desenvolvimento Web e estou acompanhando a apostila FJ-21 da Caelum.
Nela existe um desafio, de listar os contatos de um datasource usando a taglib Displaytag. Porém quando eu passo um objeto do tipo List, ao invés de ele exibir os contatos na tabela, ele exibe o texto “Nothing found to display”.
Aqui está um trecho do meu JSP:
<jsp:useBean id="dao" class="br.com.caelum.jdbc.dao.ContatoDAO" />
<display:table name="${dao.lista}" />
Lembrando que a EL ${dao.lista} retorna um objeto do tipo List, através do método getLista() presente na classe ContatoDAO.
Alguém sabe o que pode estar dando errado?
Eu consegui listar os contatos usando a implementação abaixo, mas eu não queria misturar código JAVA no meu JSP. Existe algum jeito de fazer funcionar apenas com EL?
<% request.setAttribute("contatos", new ContatoDAO().getLista()); %>
<display:table name="contatos" />
<% request.setAttribute("contatos", new ContatoDAO().getLista()); %>
<display:table name="contatos" />
Caso seja, sim. Dessa forma funciona. Mas isso é scriptlet, queria saber se da pra fazer algo parecido apenas com Expression Language. Essa página lista todos os contatos da tabela, e eu estou acessando ela diretamente pelo endereço “http://localhost:8080/fj21-agenda/lista-contatos-elegante.jsp”, então nem passa por nenhum servlet.
Como consigo listar via JSP usando jsp:useBean para instanciar o DAO e <c:forEach> para iterar sobre a lista ${dao.lista}, achei que a Displaytag também pudesse iterar sobre essa lista.
Então não tem jeito, tem que usar o scriptlet para adicionar ao Request?
No meu caso eu fiz assim, soh que no meu não está aparecendo a data…
E eu achei que iria ficar coloridinho, e no meu não ficou, alguém saberia como fazer? ‘-’