Como listar os dados em uma página JSP

15 respostas
A

Ola pessoal.

Tenho uma dúvida como listar os dados em uma página jsp.

eu tenho essa classe:

public class CadastroUsuarioDao {
	
	private Session session;
	
	public CadastroUsuarioDao(Session session){
		
		this.session = session;
	}
	
	public void adiciona(Usuario u){
		this.session.save(u);
	}
	
	public void remove(Usuario u){
		this.session.delete(u);
	}
	
	public void atualiza(Usuario u){
		this.session.merge(u);
	}
	
	public List<Usuario> listaTudo(){
		return this.session.createCriteria(Usuario.class).list();
	}
	
	public Usuario procura(String login){
		return (Usuario) session.load(Usuario.class, login);
	}
}

E gostaria de colocar o resultado da busca na página jsp, usando display:table.
Pesquisei em tudo e não achei o que eu quero.

Desde já eu agradeço.

15 Respostas

P

http://displaytag.sourceforge.net/10/tut_basic.html

siga o teste: provavelmente vc tera que fazer isso de diferente:

A
Eu fiz assim como no exemplo que voce passou
<% request.setAttribute( "test", new CadastroUsuarioDao().listaTudo() ); %> 
<display:table name="test"/>
e deu esse erro

HTTP Status 500 -

--------------------------------------------------------------------------------

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException: Unable to compile class for JSP:

An error occurred at line: 30 in the jsp file: /cadastroUsuario/cadastroUsuario.jsp
The constructor CadastroUsuarioDao() is undefined

F

Posta o codigo da sua JSP por favor!!!

Obrigado

P

Ah!!!

An error occurred at line: 30 in the jsp file: /cadastroUsuario/cadastroUsuario.jsp The constructor CadastroUsuarioDao() is undefined

Vc não tem esse contrutor. Invente uma forma de instanciar a sua classe e listar tudo.

A

Segue o código desde já eu agradeço a ajuda

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"  pageEncoding="ISO-8859-1"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ page import="br.com.hondaestevao.drawback.dao.CadastroUsuarioDao" %>
<%@ taglib uri="http://displaytag.sf.net" prefix="display" %>


<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Drawback</title>
<link rel="stylesheet" type="text/css" href="../css/default1.css">
<link rel="stylesheet" type="text/css" href="../css/painel.css">
<script language="javascript" type="text/javascript" src="js/functions.js"> </script>
<script language="javascript" type="text/javascript" src="../js/functions.js"></script>
<script language="javascript" type="text/javascript" src="../js/retiraCaractere.js"> </script>
<script language="javascript" type="text/javascript" src="../js/valida_cnpj.js"> </script>
<script language="javascript" type="text/javascript" src="../js/jquery-1.2.1.pack.js"> </script>
  <script language="javascript" type="text/javascript">
	//Redimensiona a DIV principal quando a janela é redimensionada
	window.onresize = mainSize;
    </script>
</head>
<body onload="mainSize();" id="bodytag">
 <div id="container">
     <div id="top">
		<c:import url="cabecalho.jsp"/>
		<c:import url="../util/menuPage.jsp"/>
	 </div>
	 <div id="main">
	 
	   

<div id="col_der" style="background-color:#FFFFFF; margin:0 0 0 10px; width:551px; height:auto; float:left;">

	
    <script>
	$(document).ready(function()
	{
		$("#power .sub_botones").css("display","block");
		
		$("div.servicio > .detalle_servicio").hide();
		$("div.servicio .titulo_servicio").click(function() {
			$(this).next().slideToggle("fast");
		});
	});
	</script>
<div id="contenido_col_der" style="padding:20px;" >

 <div class="servicio">
		    <h2 class="titulo_servicio">Busca</h2>
		      <div class="detalle_servicio">
			      <div class="item_servicio">
				      
					  <table class="formulario" align="center" width="90%" cellpadding="0" cellspacing="0" border="0">
                          <form name="cadUsuario" action="../pesquisaUsuario" method="post">
						      <tbody> 
							      <tr>
								        <td nowrap align="right"> Empresa</td>
										 <td nowrap><select name="empresa" class="combobox comboboxBig">
										 <option value="">[Selecione</option>
										  
										  <option value="Teste3">Teste</option>
										 </select></td>
							            <td nowrap align="right"> Nome</td>
										<td><input class="inputtext" id="nome" type="text" name="nome" size="40" maxlength="100"></td>
							            
								  </tr>
								  <tr>
								     <td nowrap align="right">E-mail</td>
										<td><input type="text" id="email" name="email" class="inputtext" size="40" maxlength="120"></td>
								  </tr>
								    <tr>
                                        <td>&nbsp; </td>
	                                    <td><input class="button" type="submit" value="Filtrar"></td>
                                   </tr>
							 </tbody>
                          </form>
					   </table>
				  </div>			
		      </div>
	   </div>

<!--Cadastro de usuarios -->
      	<div class="servicio">
		    <h2 class="titulo_servicio">Cadastro de Usu&aacute;rios</h2>
		      <div class="detalle_servicio">
			      <div class="item_servicio">
<table class="formulario" align="left" width="70%" cellpadding="0" cellspacing="0" border="0">
<form name="cadUsuario" action="../mvc" method="post" onSubmit="return ValidaUsuarios();">

 <tbody>  

    <tr>
      <td colspan="3">&nbsp;</td>
  </tr>
  <tr>
	  <td nowrap align="right" bgcolor="#DDDDDD" >Empresa </td>
	  <td><select name="novaEmpresa" class="combobox comboboxBig">
	      <option value="">[Selecione]</option>
		 
	      </select>
	 </td>
   </tr>
   <tr>
     <td nowrap align="right" bgcolor="#DDDDDD">Nome</td>
	 <td><input class="inputtext" id="nome" type="text" name="nome" size="60" maxlength="100"></td>
  </tr>
     <tr>
     <td nowrap align="right" bgcolor="#DDDDDD">E-mail</td>
	 <td><input class="inputtext" id="email" type="text" name="email" size="60" maxlength="100"></td>
  </tr>
  <tr>
     <td nowrap align="right" bgcolor="#DDDDDD">Telefone</td>
	 <td><input class="inputtext" type="text" name="telefone" id="telefone" size="20"></td>   
  </tr>
    <tr>
     <td nowrap align="right" bgcolor="#DDDDDD">Usuário</td>
	 <td><input type="text" name="usuario" class="inputtext" id="usuario" size="60"></td>   
  </tr>
   <tr>
     <td nowrap align="right" bgcolor="#DDDDDD">Senha</td>
	 <td><input type="password" name="senha" class="inputtext" id="senha" size="20"></td>   
  </tr>
   <tr>
     <td nowrap align="right" bgcolor="#DDDDDD">Confirmar Senha</td>
	 <td><input type="password" name="Csenha" class="inputtext" id="Csenha" size="20"></td>   
  </tr>
    <tr>
     <td nowrap align="right" bgcolor="#DDDDDD">Acesso Interno</td>
	 <td><input type="checkbox" name="acessoInterno" value="Acesso"></td>   
  </tr>
  <tr>
     <td nowrap align="right" bgcolor="#DDDDDD">Bloqueado</td>
	 <td><input type="checkbox" name="bloqueado" value="Bloqueado"></td>   
  </tr>
  <tr>
     <td nowrap align="right" bgcolor="#DDDDDD">Admin</td>
	 <td><input type="checkbox" name="admin" value="admin"></td>   
  </tr>
  <tr>
     <td nowrap align="right" bgcolor="#DDDDDD">Observação</td>
	 <td><textarea name="observacao" class="textarea" rows="3" cols="60"></textarea></td>
  </tr>

  <tr> 
	 <td align="right"><input class="button" type="submit" value="Cadastrar"></td>
  </tr>
  <input type="hidden" name="business" value="AdicionaContatoLogic">
 </form> 
  </tbody>
</table>
				  </div>			
		      </div>
			  
			  
			  
	   </div>
	 	 <!-- Fim cadastro  -->  
	   
	   
	   <div class="servicio">
		    <h2 class="titulo_servicio">Listagem</h2>
		      <div class="detalle_servicio">
			      <div class="item_servicio">
						        
				        <% request.setAttribute("test", new CadastroUsuarioDao().listaTudo()); %>
				        <display:table name="test"/>
				      
				      
				        
				      
				      
				  </div>			
		      </div>
	   </div>

	

</div>
</div>
	 </div>		  
		
		<c:import url="rodape.jsp"/>
</div>		
</body>
</html>
A

Como eu vou fazer isso instaciar essa classe vou novato em java.

F

Vc não disse que estava usando display:table ?!?! Ou eu li errado?!?!?

Se for para usar o display, aconselho a vc a setar a lista no request pela action e seta-la no TAG da tabela, depois e so criar as colunas e aproveitar as vantagens da display:table.

A

Me mostra como fazer por favor já pesquisei em tudo e nada.

Como fazer?

P

ok, se não fosse um JSP, como vc listaria todos os dados? :wink:

Algo como isso, certo:

MeuDao dao = new MeuDao(outrasCoisasQueOMeuDaoPrecisa); List<Usuario> lista = dao.listarTodos();

A

Sim mas como eu faço no jsp? To apanhando muito!

F

Adilson,

Este é o codigo que deve ter em sua JSP:

<display:table name="test">
  <display:column property="id" title="ID" />
  <display:column property="name" />
  <display:column property="email" />
  <display:column property="status" />
  <display:column property="description" title="Comments"/>
</display:table>

onte a palavra test deve ser subistituida pelo nome da lista que foi setada no request, já

<display:column property="email" />

Onde esta escrito email deve ser subistituido pelo campo que vc quer mostrar, ou seja, nome, endereço…

Lembrando que vc deve setar sua lista no request e esta lista deve conter um objeto do tipo que vc quer, no seu caso se entendi esta lista terá um ou vários objetos do tipo usuário.

Mais uma coisa, o que este codigo:

new CadastroUsuarioDao().listaTudo() );

Retorna uma lista ou simplemente os objetos?

Se tiver retornando a lista otimo ela já está setada no request com o nome de test, vai bastar vc colocar o codigo da display:table na sua jsp.

P.S.: Estou contando que vc já tenha add o .JAR da display:table no classpath do seu projeto!!

Qualquer coisa posta ai.

A

Foi o que me passaram assim:

<% 
	 
	 request.setAttribute("test", new CadastroUsuarioDao().listaTudo()); %>

Eu fiz o que voce disse, porem deu esse erro:

HTTP Status 500 -


type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException: Unable to compile class for JSP:

An error occurred at line: 33 in the jsp file: /cadastroUsuario/cadastroUsuario.jsp
The constructor CadastroUsuarioDao() is undefined

Eu fiz assim:

request.setAttribute("test", new CadastroUsuarioDao().listaTudo());

<display:table name="listaTudo">         
<display:column property="email" />   
<display:column property="status" />      
</display:table>

Email esta cadastrado no banco.

Minha lista está assim:

public List<Usuario> listaTudo(){
		return this.session.createCriteria(Usuario.class).list();
	}

Desde por estar incomodando!

A

eu tenho os jar e o código faltou

<display:table name="listaTudo"> <display:column property="email" /> <display:column property="status" /> </display:table>

P

Sim, eu te passei esse codigo, so que eu não tinha visto que o seu Dao não tinha construtor padrão e não sei pq vc optou por isso. A solução é, aparentemente, simples: basta instanciar o seu DAO na JSP e passar para este componente (ou então fazer um for-each mesmo e criar essa lista na mão).

Se vc não sabe instanciar o seu DAO, puxa, não sei em que podemos te ajudar.

A

Eu sei instacir o meu Dao sim.

Só que eu quero ver uma forma de não colocar codigo java dentro do JSP. Por iso estou perguntando uma forma diferente. De se fazer. Agradeço a sua ajuda!

Criado 8 de fevereiro de 2009
Ultima resposta 9 de fev. de 2009
Respostas 15
Participantes 3