Enviar um parametro de JSP para JSP sem passar por um Servlet ?
12/01/2012
0
Olá,
To estudando a integração de Jsp e Servlets numa aplicação e estou com uma duvida !!
Alguém sabe como enviar parametros de um jsp para o outro, sem usar um Servlet.
Não consigo na minha aplicação enviar para "pag3.jsp" os parametros que o Servlet manda para "pag2.jsp" .
Pois pelo que estudei, não tem como enviar parâmetros para varios JSPs através do mesmo Servlet , pois o objeto request é unico.
e até agora não consegui achar um código para implementar num JSP que recebe um parâmetro e envia ele para outro JSP .
Desde já agradeço !!
Aqui está o meu código. (está em anexo tambem)
Cliente.java
pag1.jsp.:
Servlet.java
pag2.jsp
pag3.jsp
O Nome digitado na pag1 aparece na pag2 , mas não na pag3.
(O arquivo zip está em anexo)
Obrigado gente !![/code]
package entidade; public class Cliente { private String nome; public String getNome() { return nome; } public void setNome(String nome) { this.nome = nome; } }
... <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Pagina1</title> </head> <body> <form action="ServletTeste" method="get"> Digite seu nome : <input type="text" name="nome"> <input type="submit" value="Enviar"> </form> </body> </html>
... import entidade.Cliente; @WebServlet("/ServletTeste") public class ServletTeste extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String nome = request.getParameter("nome"); Cliente c1 = new Cliente(); c1.setNome(nome); request.setAttribute("cliente1", c1); request.getRequestDispatcher("/pag2.jsp").forward(request, response); } }
.... <jsp:useBean id="cliente1" class="entidade.Cliente" scope="request" /> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Pagina2</title> </head> <body> Olá ${cliente1.nome}<p> Caso você queira ir para pagina 3 , clique aqui:<br> <form action="pag3.jsp"> <!-- ???? o que eu posso colocar aqui para enviar o ${cliente1.nome} para a pagina 3 --> <input type="submit" value="Enviar"> </form> </body> </html>
... <jsp:useBean id="cliente1" class="entidade.Cliente" scope="request" /> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Pagina 3</title> </head> <body> <!-- Tenho tentado dos dois jeitos --> Olá ${cliente1.nome}<p> <!-- ou --> Olá <jsp:setProperty property="nome" name="cliente1"/> </body> </html>
Gustavo
Curtir tópico
+ 0
Responder
Post mais votado
13/01/2012
Olá Gustavo,
Você está confundindo muita coisa. Dá sim para mandar valores de uma página jsp para outra, pois, no fim de tudo, uma jsp é um servlet!
Para que os parâmetros sejam enviados em um [b]request[/b] quando o submit do form for executado, é necessário que os mesmos estejam dentro do formulário como input's. Tomando teu exemplo como referência, poderíamos fazer assim:Porém, tem um detalhe... Quando você executa o submit do formulário é enviada uma requisição (request) para o destino definido no atributo [b]action[/b] (seja um servlet, ou uma jsp).
Assim como no servlet você recupera todos os atributos do form usando:Da mesma forma você terá de fazer na jsp:Qualquer coisa posta aí! :!:
// pag2.jsp <form action="pag3.jsp"> <input type="hidden" name="nome" value="${cliente1.nome}" /> <input type="submit" value="Enviar"> </form>
request.getParameter("nomeDoCampo");
// pag3.jsp <body> // param é utilizado pela Expression Language para buscar o valor do parâmetro na requisição pelo nome <p> Olá ${param.nome}</p> </body
Diogo Souza
Responder
Clique aqui para fazer login e interagir na Comunidade :)