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 “/”.