Jsp

Galera boa tarde…

estou com uma duvida!

estou usando o código a seguir para listar dados do banco em uma index.JSP.

		<% 
		  UfService service = UfService.getInstance();
		  List dados = service.findAll();
		  
		  for(int i=0; i< dados.size(); i++){
		    Uf uf = new Uf();
		    uf = (Uf)dados.get(i);
		   %>
	       <li><%=uf.getNome()%>/<b><%=uf.getSigla()%></b></li>	  
		  <%  
		  }
		%>	

gostaria de saber uma forma mais “limpa” de fazer esta listagem. Eu tentei o seguinte código porem não funciona.

		 <jsp:useBean id="lista" class="br.org.neo.exemplo.service.UfService">
		   <c:forEach var="teste" items="${lista}" > 
		    ${teste.sigla}
		  </c:forEach>
		 </jsp:useBean>

abraço

Bem vindo ao guj, dê uma lida nesse post para aprender a usar os recursos do fórum quando for postar!

Quanto à sua dúvida, quando você usa jstl, no “items” você deve indicar uma Collection, por isso não funciona. Você poderia fazer ${lista.all} por exemplo, mas apenas se alterar seu método findAll() para getAll(), pois por convenção ${obj.metodo} gera uma chamada do tipo obj.getMetodo().

Mas acho que colocar o código java num Servlet lá colocar a lista no request é uma opção melhor. assim você só precisa referenciar no jsp. Algo como: request.setAttribute("lista", service.findAll()); no servlet e então <c:forEach var="item" items="${lista}" > no jsp.

Blz? Flw! :thumbup:

Opa… valeu pela dica… vou olhar sobre a postagem. Bem que eu vi que estava estranho dimais.

de toda forma

muito obrigado