Salvar bean utilizando JSTL

9 respostas
fabricioff

Bom dia a todos.

Já procurei no forum mas não encontrei exatamente minha dúvida.

Bem, tenho um POJO Pessoa, com informações de nome, idade e endereço.
Tenho uma DAO PessoaDAO que tem dois métodos, um recebe um objeto do tipo Pessoa e o persiste no banco e outro que retorna uma lista de todas as pessoas.

Tenho uma JSP de cadastro de pessoas com uma BEAN do tipo Pessoa. Estou utilizando apenas JSLT. Teria alguma forma de executar, no click do botão do formulário de cadastro, o método da PessoaDao passando como parâmetro o Bean pessoa da página?

Se não for possível como eu contornaria isso?

Muito obrigado

9 Respostas

J

Pelo que eu entendi da sua pergunta sim…!!

cria na tela de cadastro o objeto pessoa seta o valor do post nele e na acao do usuario passa pessoaDAO($Pessoa)

luiz_renato

Desculpem a intromissao…

Se eu quizesse fazer as operações do DAO numa servlet e o jsp só recebesse os resultados (no caso de uma pesquisa um List com os POJO) como eu faria p/ JSP pegar esses resultados via JSTL?

Luiz Renato

fabricioff

Bem, não sei se entendi o que vc quis dizer, quando tentei fazer o que você me sugeriu deu erro.

Segue em anexo os meus códigos.

Pojo Pessoa

public class Pessoa
{
	String nome="";
	String endereco="";
	public String getNome()
	{
		return nome;
	}
	public void setNome(String nome)
	{
		this.nome = nome;
	}
	public String getEndereco()
	{
		return endereco;
	}
	public void setEndereco(String endereco)
	{
		this.endereco = endereco;
	}
	
	
	
}

PessoaDAO (Só está imprimindo, pra não poluir com código SQL, mas considere o método inserir como acessando o banco e fazendo insert)

public class DAOPessoa
{

	public void inserir(Pessoa p)
	{
		System.out.println("Nome: "+p.getNome());
		System.out.println("Endereço: "+p.getEndereco());
		
	}
	
	
	
}

JSP de cadastro

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<jsp:useBean id="pessoa" class="meupacote.Pessoa"/>
<jsp:useBean id="daopessoa" class="meupacote.DAOPessoa"/>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>

<body>

<form action="daopessoa.inserir($pessoa)">

Nome: <input type="text" value="${pessoa.nome}"/>
Endereço: <input type="text" value="${pessoa.endereco}"/>

<input type="submit" />

</form>



</body>


</html>

Obrigado!

Jair_Rillo_Junior

luiz_renato:
Desculpem a intromissao…

Se eu quizesse fazer as operações do DAO numa servlet e o jsp só recebesse os resultados (no caso de uma pesquisa um List com os POJO) como eu faria p/ JSP pegar esses resultados via JSTL?

Luiz Renato

Na sua servlet coloque o objeto List no request e no JSP use a tag c:forEach para percorrer todos os valores da lista.

luiz_renato

Huum

Entendi. Mas se não quizesse usar scriptlet pra pegar o List do request como faria?

Jair_Rillo_Junior

Não precisa usar scriptlet, tudo isso pode ser feito via JSTL.
Dê um olhada nessa taglib :wink:

luiz_renato

Valeu Jair!!

fabricioff

Que bom que o Luiz já conseguiu ter sua dúvida respondida, será que alguém pode me ajudar com a minha?
Ainda não consegui fazer a DAO salvar o Bean.

Jair_Rillo_Junior

Fabricio, no seu caso, tente na action passar o ${pessoa} ao invés de só $pessoa (não sei se irá funcionar, é apenas um teste)
Agora um outro ponto importante ai é que você está pulando as camadas. Não é legal o JSP acessar diretamente o DAO, é interessante passar por um Servlet (camada de controller do MVC).

Criado 19 de março de 2010
Ultima resposta 20 de mar. de 2010
Respostas 9
Participantes 4