Passagem de Objeto sem perca de valores

9 respostas
O

Galera to aqui tentando mas ta complicado …

Instâncio o Objeto em um Servlet com valores já setados e gostaria de passar os dados a um Jsp e não perder este objeto … tem como?

Bom vou dizer como é o que tenho que fazer, talvez há alguma maneira melhor … preciso fazer tp uma página com várias questões … elas serão likadas dando as respostas …

as perguntas e repostas são gravadas no banco de dados, eu sei chamar e tudo elas, já té sei como criar para conseguir chamar certinho, porém não sei como fazer a página de perguntas e quando i para as respostas nao perder o que eu tinha na pagina de perguntas … pois será declarado objetos na pagina de perguntas que preciso guardalos

9 Respostas

D

Opa! Tem sim… aliás esse é um ótimo hábito, o de separar view de negocio e controle…

Bom, vc pode colocar o objeto na sessão e pegá-lo na página depois, ou então vc faz:

request.setAttribute("nomeQualquer", Objeto);
request.getRequestDispatcher("minhajsp.jsp").sendForward(request, response);

dai vc pega no jsp usando o nome “nomeQualquer”

M

tu pode ter um objeto Foo com atributos para a pergunta e resposta, por ex, sei lá:

class Foo {

   private Long id;
   private String pergunta;
   private String resposta;

   //getters and setters
}

e ter um ArrayList desse objeto na sua sessão :joia:

O

Desculpa ae por bater tanto na mesma tecla, porém a idéia ainda não ta muito certa ... olhem só

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.sql.*;
import beans.Cadastro;

public class teste extends HttpServlet {
  public void doGet(HttpServletRequest request,
			        HttpServletResponse response)
		throws ServletException, IOException {
			
Cadastro teste = new Cadastro();
teste.setNome("Rafa");
teste.setEmail("[email removido]");
request.setAttribute("Teste", teste);
request.getRequestDispatcher("teste.jsp").sendForward(request, response); 
   }
}
Êrro
symbol  : method sendForward (javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse)
location: interface javax.servlet.RequestDispatcher
request.getRequestDispatcher("teste.jsp").sendForward(request, response); 
                            ^
1 error

Agora a duvida mesmo, criei uma instancia de um Objeto, setei variaveis dele, no proprio Servlet ... quando eu der um "request.setAttribute" como ele faz? ele pega todo o Objeto? e quando vai para o Jsp tu pega o "teste" (no caso o que está acima, ali no código) e ele terá todo objeto? e é soh dar um teste.getNome() no Jsp??

Já to ficando loko com isso eheh obrigado mais uma vez =)

M

o erro não tem nada a ver com a sua dúvida, ao invéz de sendForward(), chame forward()

O

eu sei que não tem nada haver porém a duvida segue sobre o mesmo assunto …

essa eh a duvida

M

“omega_tiger”:
eu sei que não tem nada haver porém a duvida segue sobre o mesmo assunto …

essa eh a duvida

Bem, sim, ele vai pegar todo o objeto q tu bindar no request. Depois é só recuperá-lo e fazer oq quiser com ele

O

ta e como funciona essa recuperação? pois eu tentei por os atributos e não consegui … poderia me dar uma mão nisso?

M

no servlet:

request.setAttribute( "Foo", new Foo() );

no jsp:

Foo f = ( Foo ) request.getAttribute( "Foo" );

f.doStuff();
O

vlw ai por todo apoio pessoal, finalmente consegui entender toda essa parte =) já consegui fazer o ArrayList tb, criar objetos e chamar através de métodos Get, mas concerteza nao sei se conseguiria sem a mão ae d vcs =] vlw !

Criado 14 de junho de 2005
Ultima resposta 15 de jun. de 2005
Respostas 9
Participantes 3