sendRedirected

Consegui chamar meu jsp no meu servlet com o método sendRedirected. Porém gostaria que qdo o jsp fosse chamado ele mostrasse uma mensagem tipo “Preencha todos os campos”.

Meu código:

/*Caso, um dos campos do cadastro esteja vazio, exibe o formulário novamente
para ser preenchido
/
if(assunto.equals("") || descricao_questao.equals("")|| descricao_alt[0].equals("") ||
descricao_alt[1].equals("") || descricao_alt[2].equals("") || descricao_alt[3].equals("") || alter_correta.equals("")){

                res.sendRedirect("http://localhost:8080/myApp1/CadastroQuest.jsp");   

Como posso fazer isso?

Amigo, uma dica: neste caso, use o ResquestDispatcher ao invés do sendRedirect. É melhor, pois os parâmetros são todos repassados para o seu JSP.

E quanto à mensagem que quer exibir, faça assim:

No servlet:

if( algumaCoisaQualquer ) { request.setAttribute("msg","Campos inválidos"); } request.getRequestDispatcher().forward( request, response );

No JSP:

<% if( request.getAttribute("msg") != nul ) { out.println(request.getAttribute("msg")); } %>

[quote=danieldestro]Amigo, uma dica: neste caso, use o ResquestDispatcher ao invés do sendRedirect. É melhor, pois os parâmetros são todos repassados para o seu JSP.

E quanto à mensagem que quer exibir, faça assim:

No servlet:

if( algumaCoisaQualquer ) { request.setAttribute("msg","Campos inválidos"); } request.getRequestDispatcher().forward( request, response );

No JSP:

<% if( request.getAttribute("msg") != nul ) { out.println(request.getAttribute("msg")); } %>[/quote]

Então mas o comando request.getRequestDispatcher().forward( request, response ); não funciona, dá o seguinte erro:

HTTP Status 404 - /myApp1/servlet/servlet/Cad_Quest


type Status report

message /myApp1/servlet/servlet/Cad_Quest

description The requested resource (/myApp1/servlet/servlet/Cad_Quest) is not available.


Apache Tomcat/5.0.28

Ou seja, ele pega o contexto do servlet.

Ops: request.getRequestDispatcher("/seujsp.jsp").forward( request, response );

Esteja certo que o caminho é válido.

[quote=danieldestro]Ops: request.getRequestDispatcher("/seujsp.jsp").forward( request, response );

Esteja certo que o caminho é válido.[/quote]

Será que pelo meu web.xml ter o caminho servlet/nomedoservlet ele esta fazendo isso?
Porque qdo eu chamo meu jsp a partir do meu servlet ele vai para servlet/…
???

Com certeza!
Por isso coloque o caminho absoluto, ou seja, começando com “/”.