Galera,
Ve se alguém me dá uma ajuda, estou trabalhando com jsp submetendo ação a um servlet, o servlet executa e dependendo do resultado faz um response.sendRedirect(caminho);
Tudo tranquilo até ai né?
em toda a minha aplicação isso tá funcionando, mas em um certo local quando faço isso, ele não redireciona para o caminho que especifiquei, alguém sabe o porque disso?
Na minha servlet tenho um método que se chama controle com a assinatura:
public boolean controle(HttpServletRequest req, HttpServletResponse resp)
e dentro deste metodo tenho o response assim:
resp.sendRedirect(req.getContextPath()+"/action/listagemUsuarioLotacao.fbb?codigoLotacao="+(req.getParameter("codigoLotacao")))
dá algum erro?
ele direciona pra outro lugar?
tem um detalhe do sendRedirect que se vc já tiver escrito qq coisa na saída ele não faz o redirecionamento…
não redireciona para nenhuma pagina, submete-se a mesma pagina que faz o post. Logo, como não tenho valores após o redirect me dá alguns erros, pois nao os tratos.
Na verdade não está me redirecionando para onde eu quero.
Como assim?
Cara, tu ja debugou pra saber qual a url que ele ta passando como parametro???
se funciona em todo lugar menos numa situação…
sera que não é o parametro que ta errado???
[]'s
ao invéz de usar sendRedirect() com getContextPath(), pq tu não usa simplesmente o getRequestDispatcher() do ServletContext?
[quote=“rodrigomaia”]Cara, tu ja debugou pra saber qual a url que ele ta passando como parametro???
se funciona em todo lugar menos numa situação…
sera que não é o parametro que ta errado???
[]'s[/quote]
Cara se eu pego e imprimo a url que estou gerando e colo no browser funciona certinho. O caminho está certo.
O redirect que não está rolando.
tentei também matheus…
mas não funfou.!
O que o viecili quis dizer é que se você já escreveu no response (com PrintWriter.println(), por exemplo), o sendRedirect() não vai ser executado.
bem lembrado, é IllegalStateException na hr…
já q vc tah mandando pra mesma action/página, então tenta assim:
resp.sendRedirect(req.getRequestURL().toString()+"?codigoLotacao="+(req.getParameter("codigoLotacao")));
return null;
o return null é importante!
Ja tentasse fazer dessa forma…?
this.getServletContext().getRequestDispatcher("tuaURL").forward(request, response);
que no teu caso deve ser mais ou menos assim
this.getServletContext().getRequestDispatcher(req.getRequestURL().toString()+"?codigoLotacao="+(req.getParameter("codigoLotacao")).forward(request, response);
tenta exatamente como ta ai, mudandom apenas a tua URL…[/code]
Por falar nisso, estou aqui, estudando para a SCWCD. Mas, ao contrário do que o livro diz, essa exceção não ocorreu nos testes que fiz.
Se coloco out.flush(), a linha do redirect é ignorada.
Se tiro, o redirect acontece, mas sem a exceção. :?: :?:
O que você acha?
Deixa pra lá. A exceção ocorre e vai pro log do servidor.
nao sabia disso…
Consegui vi o erro coisa que nao sabia… mesmo
Por exemplo:
tenho uma listagem.jsp e um formulario.jsp com seus respectivos actions(servlets).
Na listagem apenas listo, passando para a formulario.jsp um paramentro, parametro este que serve ou para consultar e editar (alterar), ou excluir o registro.
Só que quando edito, ele numa destas consultas me retornava um valor null para uma variável que eu uso para editar… ai… dá pau… na hora de executar o restante do jsp…
Engraçado é que o meu sendRedirect está antes da declaração de tdodas as variáveis, pelo que eu entendi, sempre irá processar toda a pagina jsp, independentemente de onde está o controle dela.
Correta essa afirmação?