Ajuda com parametros e JSTL

7 respostas
R

Senhores, estou a desenvolver um sistema que vai reee-vo-lu-cionaaar a internet, trata-se de uma agenda de contatos online,
Por enquanto tenho aqui uma tabela de usuarios e uma tabela de contatos, aonde em contatos o campo con_userid se relaciona com o id da tabela usuarios.
Então o usuário vai logar e receber uma lista de seus contatos, a lista que ele vai receber será dada a partir da clausula:

String sql = "select * from contatos where con_userid = " + userId; //recebe o parametro do metodo getLista

o método getLista fica assim:

public [b]List<Contato> getLista(int userId)[/b] {

		String sql = "select * from contatos where con_userid = " + userId;
		List<Contato> contatos = new ArrayList<Contato>();
		try {
			PreparedStatement stmt = this.connection.prepareStatement(sql);
			ResultSet rs = stmt.executeQuery();
			while (rs.next()) {
				Contato contato = new Contato();
				//código que popula contato
			}
			rs.close();
			stmt.close();

		} catch (SQLException e) {
			e.printStackTrace();
		}
		return contatos;
	}

perceba que o método recebe um parametro, que é o Id do usuário logado, então na hora de exibir a lista eu vou receber via post o id do usuário logado e através de JSTL enviar para o método getLista, a parte que nos interessa agora do lista-contatos.jsp ficou assim:

<c:forEach var="contato" items="${dao.lista}" >

Eu sei que o id do usuario pode ser acessado simplesmente com ${contato.user_id}
mas como eu envio para o getLista o id do usuário? sei que JSTL nao envia parametro, mas nao consigo enxergar como faze-lo de outra forma. Agradeço desde já sua grande ajuda.

acontece que estou utilizando JSTL para exibir a lista de contatos

7 Respostas

A

Eae Renan, tudo bem?

Bom, após listar os usuários do banco e armazena-los em um List de Contatos, vc precisa passar esse List para sua página…
no caso, coloca-la no em algum escopo: request, session, application ( e outros dependendo da tecnologia que vc está utilizando)…

Só após fazer isso vc vai conseguir iterar com o <c:forEach …

[]'s!

R

puxa vida… agora estava lembrando de algo, logins são tratados com session mesmo né, acho que minha lógica está errada. Vou pensar bem no assunto e volto neste post pode ser? por enquanto já muito obrigado.

Hebert_Coelho

De preferência utilize request.

Quanto mais session vc utilizar mais vc irá ocupar a memória do seu servidor.

E isso não é bom! [=

R

Vem cá… por acaso este escopo o qual você se refere tem a ver com JSF? por que inda nao sei nada de JSF, conheço um pouquinho de struts e hibernate mas neste projetinho estou usando somente servlets e jsp, formando um mvc “caseiro” baseado na apostila da Caelum.

Hebert_Coelho

Não não.

Request/Session/Application Context

Faz parte de qualquer servidor. Faz parte da especificação web.

R

Ta legal… vou ver direitinho aqui por enquanto obrigado novamente, fica com Deus parceiro.

R

parceiro, nao consegui chegar numa conclusão decente sobre escopos para me auxiliar neste problema, então vou tirar a implementação de login temporariamente, terminar a parte visual do projeto e etc, logo mais volto pra fazer um esquema legal de login, brigado mesmo assim, fique com Deus.

Criado 15 de novembro de 2011
Ultima resposta 22 de nov. de 2011
Respostas 7
Participantes 3